Это уже полностью лишило меня на пару дней, и я убежден, что буду выглядеть глупо, как только я его разрешу, но будет даже глупее, если я не прошу помощи Теперь.mod_rewrite не работает для определенного каталога
У меня есть mod_rewrite, успешно работающий на моем локальном хосте (без участия vhosts, это мой ноутбук, моя машина разработки), и я использую .htaccess в разных каталогах, чтобы помочь переписать крутые URL-адреса для их очистки. ЗА ИСКЛЮЧЕНИЕМ ... он не работает в одном каталоге. Поскольку в этом вопросе невозможно воспроизвести весь мой ноутбук, я предоставляю следующие данные.
В моем httpd.conf у меня загружен mod_rewrite.so.
LoadModule rewrite_module modules/mod_rewrite.so
В моей httpd.conf, я включил еще один файл конф как так
Include /usr/local/apache2/conf/other/punkish.conf
В моей punkish.conf я каталогов определяется как так
DocumentRoot "/Users/punkish/Sites"
<Directory "/Users/punkish/Sites">
Options ExecCGI
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<Directory "/Users/punkish/Sites/one">
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
<Directory "/Users/punkish/Sites/two">
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
В ~/Сайты/один У меня есть следующий файл .htaccess
RewriteEngine On
RewriteBase /one/
# If an actual file or directory is requested, serve directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Otherwise, pass everything through to the dispatcher
RewriteRule ^(.*)$ index.cgi/$1 [L,QSA]
и все работает отлично. Однако, в моем каталоге ~/Sites/два у меня есть следующий файл .htaccess
RewriteEngine On
RewriteBase /two/
# If an actual file or directory is requested, serve directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Otherwise, pass everything through to the dispatcher
RewriteRule ^(.*)$ index.cgi/$1 [L,QSA]
и, ничего не работает. Нада. Zip. Шиш. Я просто получил 404. Я решил, что mod_rewrite даже не смотрит на мой ~/Sites/two/.htaccess, помещая в него ложные команды и не получая никаких ошибок, кроме 404.
Еще одна проблема, вызывающая смешение - I включили RewriteLog в моем httpd.conf с RewriteLogLevel 3, но мой rewrite_log полностью пуст. Я знаю, что трудно справиться с проблемой, если физически не сидеть за компьютером, но я надеюсь, что кто-то может дать мне некоторое представление о том, что происходит.
** Обновление: ** Никаких псевдонимов не задействовано нигде. Это мой ноутбук, и все находится под вышеуказанным корнем документа, поэтому я просто обращаюсь к каждому каталогу как http://localhost/. Да, опечатки - большая возможность (я действительно говорил, что буду выглядеть глупо, как только я его разрешу, однако пока что я нигде не обнаружил ни одной опечатки, и да, я перезапустил Apache примерно дюжину раз. подумал, что, возможно, у меня было два разных апача, но нет, у меня есть только один, один под/usr/local/apache2, и я сам его установил некоторое время назад.
Проверьте verrrry тщательно опечатки - особенно в именах каталогов также перезапустить Apache:..) – Greg