У меня есть файл .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
попадает в это.