.htaccess исключить каталог, подлежащий перезаписи

#apache #.htaccess #mod-rewrite

#apache #.htaccess #мод-перезапись

Вопрос:

где я ошибаюсь в этом 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:

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

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

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

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

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

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

Это не файл (соответствует!-f), не каталог (соответствует!-d), и его нет ни в assets/ , ни в css/ , после чего он перезаписывается в index.php

Вопрос и ответ

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

Комментарии:

1. Спасибо за ответ, я добавил 404.shtml в папку, тогда я ve got same thing. Isn не могу получить браузер 404, не являющийся cusom? valentinivascu.ro/rewrite.txt пожалуйста, посмотрите новый журнал

2. Я думаю, что 404.shtml проиндексирован где-то в конфигурации apache. Найдите что-то вроде ‘ErrorDocument 404 / 404.shtml` в ваших конфигурационных файлах.

3. Да, спасибо, кажется, это была проблема. Настроенный документ с ошибкой из apache 🙂 Хорошего дня