Как добавить исключение в RewriteRule

В моём случае я сам обрабатываю каждый запрос через единый файл index.php, но мне нужно сделать исключения, чтобы при запросах на "/js", "/img", "/css" это правило не срабатывало и открывались соответствующие директории включая "/js/something/else".

RewriteEngine on
RewriteRule ^.*?(\?.*)?$ index.php$1

Ответы (1 шт):

Автор решения: Максим Степанов

Добавить исключение в RewriteRule можно с помощью RewriteCond

Если у вас в веб-пространстве только index.php + файлы js и пр., просто добавьте между вашими строками RewriteCond %{REQUEST_FILENAME} !-f чтобы если запрошен существующий файл - обращаться к нему и не выполнять редирект. То есть если структура такая:

/app/   - здесь остальные файлы сайта
/web/   - это корень сайта, доступный по /
   /js/
   /css/
   /img/
   index.php    - сюда все запросы
   .htaccess

достаточно просто дописать:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.*?(\?.*)?$ index.php$1

если же все в куче - тогда, с помощью того же RewriteCond... настраивать редирект

→ Ссылка