虽然我可以打开“重写日志记录”并弄乱此规则以弄清楚它的作用(如果有的话),但我敢打赌有人已经知道了。这是规则本身:

RewriteRule ^ - [L]


在上下文中:

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]


我猜它的意思是“匹配所有内容”。我以为“匹配所有内容”将是一个点,以使其更明显地表明没有丢失的代码,并且如果插入符是唯一的内容,则regexp将出错。因此,我看到外部机会意味着它还有其他意义。

最佳答案

^是说“匹配任何东西”的一种不合常规的方式,就像您说的那样
-表示“不采取任何措施”
[L]表示“最后一条规则”,即在此之后停止处理RewriteRules


我假设这之后还有其他规则,因为RewriteCond / RewriteRule的组合表示如果当前请求是针对现有文件或目录的,则mod_rewrite应该忽略任何后续的RewriteRules



用代码表示,这等效于:

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

  // other rules
  ...
}

关于regex - RewriteRule ^-[L]也称为RewriteRule脱字符号D,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17302644/

10-16 14:49