Apache mod_rewrite работает в .htaccess, но не в httpd.conf

I ' m экспериментирую с mod_rewrite в первый раз (я новичок в сети, но пытаюсь научиться). Я пытаюсь заставить bob.html перенаправить на alice.html (читайте: URL остается прежним, содержимое страницы - alice.html ). Оба файла находятся в / var / www / . Я использую Ubuntu 10.10 с Apache 2.2.16.

Вот что работает в файле .htaccess , размещенном в каталоге / var / www / :

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^bob.html$ alice.html
</IfModule>

Это ведет себя так, как ожидалось, но не работает при перемещении в файл httpd.conf (просто изучаю лучшие практики с производительностью и т. д.). Я где-то читал, что при использовании mod_rewrite в файле httpd.conf требуются ведущие косые черты, поэтому мой файл httpd.conf выглядит так:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^/bob.html$ /alice.html
</IfModule>

Я также читал, что / etc / apache2 / sites-enabled / 000-default должен иметь для AllowOverride значение All .

<Directory /var/www> 
...
AllowOverride All
...
</Directory>

I думаю , это только для использования с .htaccess , но я не был уверен, поэтому просто оставил его.

Со всеми этими настройками конфигурации перенаправление не работает. Я протестировал, чтобы убедиться, что сам файл читается (кто-то предположил, что httpd.conf больше не используется, а вместо него используется apache2.conf ) путем вставки ошибочного кода. Я просмотрел еще пару вопросов / ответов, но все еще не могу понять.

Изменить : Следует отметить, что я использую /etc/init.d/apache2 restart после каждого изменения в httpd. conf , чтобы перезапустить Apache и (надеюсь) перезагрузить конфигурацию.

7
задан Chris 25 February 2011 в 19:04
поделиться