почему эта конфигурация mod_rewrite и .htaccess на localhost в Windows не работает? - PullRequest
2 голосов
/ 15 июля 2011

Я разрабатываю сайт PHP, он работает на localhost на Apache 2.2 и Windows 7.

В моем httpd.conf я включил модуль mod_rewrite:

LoadModule rewrite_module modules/mod_rewrite.so

У меня есть корневой каталог документов, расположенный в D: \ MyWeb, а веб-сайт, над которым я работаю, находится в D: \ MyWeb \ simple_cms

.simple_cms и вот его содержимое:

Options +FollowSymlinks

RewriteEngine on
RewriteRule ^(.*)\.htm$ $1.php [NC]

Теперь при вызове http://127.0.0.1/simple_cms/index.htm следует «перенаправить» на http://127.0.0.1/simple_cms/index.php, но отображается «Ошибка 404 не найдена» (конечно, индекс.php существует там)

В access.log есть:

127.0.0.1 - - [15/Jul/2011:14:16:15 +0200] "GET /simple_cms/index.htm HTTP/1.1" 404 218

и внутри error.log:

[Fri Jul 15 14:19:30 2011] [error] [client 127.0.0.1] File does not exist: D:/MyWeb/simple_cms/index.htm

Почему это не работает?это регулярное выражение неверно?

Ответы [ 2 ]

4 голосов
/ 15 июля 2011
  1. Убедитесь, что файлы .htaccess включены (поместите AllowOverride All в соответствующее место).

  2. Если ничего - включите отладку перезаписи (RewriteLogLevel 9) и проверьте журнал перезаписи.

0 голосов
/ 15 июля 2011

Перезапускали ли вы apache после внесения изменений в httpd.conf? Новые настройки не потребуются, если вы не сделаете этого.

Также вы раскомментировали следующую строку в httpd.conf (если она существует):
AddModule mod_rewrite.c

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...