Подтвердить что ты не робот

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" будет точкой, чтобы сделать более очевидным, что отсутствующего кода нет, и что регулярное выражение будет ошибочным, если каретка была единственной в нем. Поэтому я вижу внешний шанс, что это означает что-то еще.

4b9b3361

Ответ 1

  • ^ - это несколько неортодоксальный способ сказать "соответствовать чему-либо", как вы говорите
  • - означает "не предпринимать никаких действий"
  • [L] означает "последнее правило", то есть прекратить обработку RewriteRules после этой точки

Я предполагаю, что после этого есть другие правила, потому что эта комбинация RewriteCond/RewriteRule говорит, что если текущий запрос предназначен для файла существующего mod_rewrite, игнорировать любые последующие RewriteRules.


Выраженный в коде, это будет эквивалентно:

do_rewrites(req)
{
  if (is_file(req) || is_dir(req))
    return;

  // other rules
  ...
}