Я использую сервер Apache 2.2.19, и у меня возникла проблема с mod_rewrite при работе с расширением .html.Чистка URL .php работает нормально, но не .html.В журналах ошибок я получаю следующее:
[Fri Aug 12 04:17:36 2011] [error] [client (AN IP ADDRESS)] script '(A DIRECTORY PATH)/forbidden.php' not found or unable to stat, referer: (MY WEBSITE)
[Fri Aug 12 04:17:38 2011] [error] [client (AN IP ADDRESS)] script '(A DIRECTORY PATH)/notfound.php' not found or unable to stat, referer: (MY WEBSITE)
, где некоторая информация опущена по соображениям безопасности и конфиденциальности (которая заменяется текстом в скобках).Запрещено и не найдено - это файлы HTML с расширением HTML, но по какой-то причине mod_rewrite пытается получить доступ к файлам .php.Без простого исправления простого изменения расширений файлов на .php, как я могу заставить mod_rewrite посмотреть на правильное расширение и оценить его, вместо того, чтобы рассматривать файлы HTML как имеющие расширение .php ??много заранее!
Вот соответствующий код, который находится в httpd.conf:
RewriteEngine on
Options +FollowSymlinks
RewriteCond %{REQUEST_URI} !(\.[^./]+)$
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} \.html-f
RewriteRule (.*) /$1.html [L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^.]+\.)+html\ HTTP
RewriteRule ^([^\.]+)\. $1 [R=302,L]
RewriteCond %{REQUEST_FILENAME} \.php-f
RewriteCond %{REQUEST_FILENAME} phpinfo
RewriteRule (.*) /$1.php [L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^.]+\.)+php\ HTTP
RewriteRule ^([^\.]+)\. $1 [R=302,L]