#apache #mod-rewrite
#apache #мод-перезапись
Вопрос:
Я только начинаю тестировать использование mod_rewrite в локальной установке apache.
Хотя правила перезаписи работают нормально, моя проблема в том, что страница типа «localhost / foo /» автоматически перенаправляется на «localhost/foo.php «. Это происходит даже при отсутствии правил перезаписи. Это нормально? Я предполагаю, что нет, поскольку этого не происходит в моем размещенном домене. Как я могу это отключить?
Ответ №1:
Выяснил, в чем была проблема — документирую это как ответ для будущих поисковиков [правильная ли это процедура?]
Мне пришлось отключить MultiViews — это перенаправляло localhost / foo на localhost/foo.php если бы он мог найти этот файл. Как только это было сделано, все заработало просто отлично.
Ответ №2:
Происходит какая-то перезапись. Вы могли бы переименовать фактический модуль на диске, чтобы убедиться, что он не используется. В Linux это /usr/lib/httpd/modules/mod_rewrite.so
Комментарии:
1. Простое отключение модуля у меня не сработает, поскольку я хочу создать свои собственные правила перезаписи. Где может происходить эта перезапись, чтобы я мог ее удалить?
2. Это должно быть где-то. В окне Linux:
cd /etc/httpd; grep RewriteRule */*
3. Эй, может быть, это
DirectoryIndex index.html index.html.var index.shtml index.cgi index.php
4. Это должно относиться только к index.php однако файл, верно? Никаких других файлов php..
5. Да, DirectoryIndex задает, какой файл будет отображаться, если URL-адрес является папкой типа localhost /foo