Рассмотрим пример:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^index.php [L]
Директивы RewriteCond
задают условия для, следующей после них, директивы RewriteRule
. Т.е. сами по себе они не применяются, после них должна идти директива, на которую они влияют.
В частности !-f
требует, чтобы правило RewriteRule
применялось только в том случае, если запросу не соответствует физически существующий файл, а !-d
— запрос не должен применяться, если запрашивается физически существующая папка. Таким образом, правило в RewriteRule
, следующее за этими директивами будет касаться только виртуальных URL для которых нет папки или файла на диске сервера.