2009-10-05 3 views
0

Это уже полностью лишило меня на пару дней, и я убежден, что буду выглядеть глупо, как только я его разрешу, но будет даже глупее, если я не прошу помощи Теперь.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, и я сам его установил некоторое время назад.

+0

Проверьте verrrry тщательно опечатки - особенно в именах каталогов также перезапустить Apache:..) – Greg

ответ

0

Существует фактор, в, представленное здесь, что путая ситуацию, в частности, что-то вроде Alias или этажерок, которые вызывают просьбы о /two идти куда-то, кроме ~punkish/Sites/two

Смежные вопросы