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