RewriteRule ^ - [L] AKA RewriteRule каретка dash L
Пока я мог включить Rewrite Logging и беспорядок с этим правилом, чтобы выяснить, что он делает (если есть), я уверен, кто-то уже знает. Здесь правило само по себе:
RewriteRule ^ - [L]
Здесь он находится в контексте:
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
Я предполагаю, что это означает "Match Everything". Я бы подумал, что "Match Everything" будет точкой, чтобы сделать более очевидным, что отсутствующего кода нет, и что регулярное выражение будет ошибочным, если каретка была единственной в нем. Поэтому я вижу внешний шанс, что это означает что-то еще.
Ответы
Ответ 1
-
^
- это несколько неортодоксальный способ сказать "соответствовать чему-либо", как вы говорите
-
-
означает "не предпринимать никаких действий"
-
[L]
означает "последнее правило", то есть прекратить обработку RewriteRules
после этой точки
Я предполагаю, что после этого есть другие правила, потому что эта комбинация RewriteCond
/RewriteRule
говорит, что если текущий запрос предназначен для файла существующего mod_rewrite
, игнорировать любые последующие RewriteRules
.
Выраженный в коде, это будет эквивалентно:
do_rewrites(req)
{
if (is_file(req) || is_dir(req))
return;
// other rules
...
}