Директива RewriteCond
просто описывает дополнительное условие для директивы RewriteRule
. Так что RewriteCond
всегда должно быть связано с RewriteRule
.
В вашем случае три RewriteCond
, вероятно, принадлежат первому RewriteRule
следующим образом:
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
Теперь это правило применяется, если шаблон RewriteRule
совпадает с текущим URL-адресом запроса (путь к каталогу удален ранее) и , если условие выполнено.
В этом случае условие выполняется только в том случае, если при сопоставлении URL-адреса запроса с файловой системой оно соответствует либо существующему файлу с размером файла больше 0 (-s
), либо символической ссылке (-l
), либо каталог (-d
). Таким образом, ваше правило будет применяться к любому URL (^.*$
соответствует чему угодно), который может быть сопоставлен с чем-то, существующим в вашей файловой системе. Подстановка -
просто означает не менять ничего. И NC ( без регистра , без учета регистра, бесполезен в этом контексте) и L (последнее правило, если применяется) являются flags , которые изменить шаблон, замену или выполнение правила.