Apache — отключение автоматической перезаписи

#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