鉴于这些条件(我知道他们的意思/做法):
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
first 规则有什么作用?什么是孤独的冲刺?
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ /index.php [NC,L]
我一直在使用它已经有一段时间与Zend Framework结合使用,但我从来没有真正得到第一条规则的确切做法 .
1 回答
RewriteCond directive只描述了RewriteRule directive的附加条件 . 所以
RewriteCond
必须始终与RewriteRule
相关联 .在你的情况下,三个
RewriteCond
可能属于第一个RewriteRule
,如下所示:现在,如果
RewriteRule
的模式匹配当前请求URL(之前剥离的每个目录路径)并且条件已满足,则应用此规则 .在这种情况下,条件仅在将请求URL映射到文件系统时才匹配,它与文件大小大于0(
-s
)的现有文件或符号链接(-l
)或目录(-d
)匹配 . 因此,您的规则将应用于任何可以映射到文件系统中现有内容的URL(^.*$
匹配任何内容) . 替换-
只是意味着不改变任何东西 . 并且NC(没有大小写,不区分大小写,在此上下文中无用)和L(最后一条规则,如果应用)是flags,它们修改规则的模式,替换或执行 .