Apache mod_rewrite - перезапись не происходит вообще - PullRequest
2 голосов
/ 18 марта 2012

У меня работает Apache 2.2 на компьютере с Windows.

Я пытаюсь добавить некоторые директивы перезаписи URL и начал с самого простого здравого смысла - переписать каждый URL в http://www.facebook.com.

На httpd.conf я добавил следующее:

LoadModule rewrite_module modules / mod_rewrite.so

и далее в файле, следующее:

ПереписатьEngine на

RewriteRule ^ (. *) $ http://www.facebook.com [R]

Перенаправление вообще не происходит: когда я получаю доступ к существующим файлам, я получаю их. Когда я получаю доступ к несуществующим адресам, я получаю страницу сервера 404 .

Я попытался переписать более сложные слова с тем же результатом.

В чем может быть проблема? Есть ли какие-либо файлы журналов, которые я должен проверить для подсказок относительно ошибки перенаправления? Спасибо!

Ответы [ 2 ]

1 голос
/ 18 марта 2012

Вы должны поместить AllowOveride All в свой VirtualHost раздел

<Directory /path/to/your/www/>
    AllowOveride All
</Directory>
0 голосов
/ 18 марта 2012

вы должны поместить свои правила перезаписи в блок виртуальных хостов

<VirtualHost lan-ip:80>

ServerName mysite.com
ServerAdmin admin@mysite.com
DocumentRoot /path/to/site

RewriteEngine on
RewriteRule ^(.*)$ http://www.facebook.com [R]

</VirtualHost>

где lan-ip может быть localhost или, более вероятно, выделенным ip для обслуживания mysite.com. Для локального devel вы можете использовать псевдоним NIC, например, 192.168.1.101, и изменить / etc / hosts (в Linux), например, так:

192.168.1.101 mysite.com

Затем в вашем браузере вы можете перейти на mysite.com и протестировать локальный тестовый экземпляр.

...