Вы можете добавить условие , чтобы исключить URL-адреса, которые можно сопоставить с реально существующими файлами:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.* controller.php
Ключевое слово -f
будет проверять, является ли абсолютный путь в %{REQUEST_FILENAME}
путем к существующему обычному файлу в файловой системе, а !-f
- только обратным.
Но если у вас есть фиксированный список каталогов, которые вы хотите исключить, вы также можете сделать это:
RewriteCond $0 !^(assets|foo|bar)/
RewriteRule ^.* controller.php
Это условие проверяет, не начинается ли совпадение всего шаблона RewriteRule
(обозначается $0
) ни с assets/
, ни с foo/
, ни с bar/
. Если вы не хотите обрабатывать совпадение, вы также можете использовать отрицательное выражение непосредственно в вашей директиве RewriteRule
:
RewriteRule !^(assets|foo|bar)/ controller.php