.htaccess исключает каталог для переписывания - PullRequest
0 голосов
/ 19 апреля 2011

, где я не прав в этом htaccess, потому что / assets / папка не исключена из правила перезаписи.Когда я получаю доступ: http://www.site.com/assets/images/sidebar1/some/pic.pngs не возвращает 404, как я ожидал.

Options -Indexes
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_URI} !^/?(assets|css)/
RewriteRule . index.php

Спасибо

1 Ответ

1 голос
/ 19 апреля 2011

Ваше правило гласит:

переписать все в index.php, когда:

URL-адрес не является файлом и не является каталогом и не находится в /assets/ или /css/.

Файл, который вы запрашиваете, не является файлом, не каталогом и находится в assets/:

Так хорошо для правила, НО! затем в журнале вы запрашиваете /home/valentin/public_html/404.shtml (автоматическое перенаправление для неизвестного объекта!)

И этот запрос снова проходит через правила!

Это не файл (! -F соответствует), не каталог (! -D соответствует), и он не находится ни в assets/, ни в css/, тогда он переписывается в index.php

1021 * что и требовалось доказать *

Вы можете исправить это, поместив файл 404.shtml в папку public_html/ или изменить его в конфигурации apache на настоящий файл.

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