1. 多个连续的RewriteCond 之间默认是“与”的关系,可以通过 [OR]来说明是“或”的关系, RewriteCond只作用于紧接着的一个RewriteRule
2. RewriteCond的flag有两个可选值: NC: 不区分大小写; OR:表明是“或”的关系
3. RewriteRule的flag常见值有两个:
[P]: 说明立即中断重写处理,然后把处理移交给mod_proxy模块, 如果说立即中断重写处理,则[P,L] 中的L又有什么意义呢?
[L]: 相当于break,不要再继续匹配了,如果这条规则匹配上了,则这就是最后一个匹配了
不常见的几个flag:
[N]: 相当于continue,用当前已经重写好的url再从头开始继续匹配;这样写很难理解,所以很少有这样用的。
[F]: 禁止访问
[R]: 强制重定向,而不是直接代理,对于下面情况R就是多余的,因为没有P标记,则一定是强制重定向:
1 2 3 4 5 6 |
^/somepath(.*) http://otherhost/otherpath$1 [R] 对于: ^/somepath(.*) /otherpath$1 [R] 如果没有R,则执行内部重定向,特殊情况下,我们可能通过使用R来强制外部重定向,或者我们 就是希望做一定永久重定向,可以写成如下形式: ^/somepath(.*) /otherpath$1 [R=301] |