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 является более новым значением true, и мое правило перезаписи никогда не применяется к /testpage запрос.

Итак, Apache переписывает /testpage => /testpage.xml перед тем, как мои.htaccess-файлы активируются. Modrewritelog также говорит, что запрошенный файл /testpage.xml,

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

1 ответ

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

Другие вопросы по тегам