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 добирается до этого.