Назад | Перейти на главную страницу

Apache дополняет REQUEST_FILENAME типом файла

У меня есть файл .htaccess на сервере Apache22.

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ /index.php?p=$1 [L]

Идея в том, что когда запрос / testpage, его нужно переписать на /index.php?p=testpage. Проблема в том, что apache выполняет запись перед моим файлом, поэтому на самом деле запрос testpage.xml который действительно существует. Следовательно, первый RewriteCond более новый, и мое правило перезаписи никогда не применяется к /testpage запрос.

Итак, apache переписывает /testpage => /testpage.xml до активации моих файлов .htaccess. Modrewritelog также сообщает, что запрошенный файл /testpage.xml.

На сервере FreeBSD должен быть стандартный сервер. Я знаю эту работу на других серверах.

Я предполагаю, что у тебя есть Options MultiViews на, и mod_negotiation обрабатывает запрос до mod_rewrite попадает в это.