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