mod_rewrite пустой REQUEST_FILENAME - PullRequest
       4

mod_rewrite пустой REQUEST_FILENAME

0 голосов
/ 28 января 2010

У меня есть это в моем файле .htaccess:

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule !\.(gif|jpg|png|css|js|ico|flv|php|txt)$ index.php

Теперь мне нужно добавить еще одно правило, которое будет перенаправлять в index.html, если REQUEST_FILENAME не найдено.

Таким образом, www.mysite.com будет пересылать на index.html, а www.mysite.com/file.html - на index.php.

Ответы [ 2 ]

2 голосов
/ 28 января 2010

Я обычно использую следующие правила перезаписи:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

Переписывает все URL, которые не существуют, в index.php.

1 голос
/ 28 января 2010

Просто добавьте другое правило без ограничений в конце пути URL:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule !\.(gif|jpg|png|css|js|ico|flv|php|txt)$ index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.html

Но, вероятно, было бы лучше использовать обработку ошибок по умолчанию с:

ErrorDocument 404 /index.html

В противном случае ваш сервер не ответит 404 на запрос несуществующего файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...