这些天我读了一篇关于[OR]
优先于隐含[AND]
的非常有趣的post 。 我真的很喜欢原来的问题以及高度赞赏的答案。
我最近偶然发现了有关这个话题的进一步的问题。
一旦您尝试expression以下内容,问题就会开始:
RewriteCond A RewriteCond B RewriteCond C RewriteRule ...
与A OR (B AND C)
。 无论你放置[OR]
,它都不起作用:
#resolves to (A OR B) AND C RewriteCond A [OR] RewriteCond B RewriteCond C RewriteRule ... #resolves to A AND (B OR C) RewriteCond A RewriteCond B [OR] RewriteCond C RewriteRule ... #makes no sense at all with no further cond after c RewriteCond A RewriteCond B RewriteCond C [OR] RewriteRule ...
RewriteCon越多越好,因为你总是需要一个“伙伴”来把[OR]与:(我的发现是
您只能表示来自CNF的RewriteCond集( 连接范式 )。
其中,imho是相当巨大的,并且由于没有明确的[AND]
以及不可能将两个Cond括在一起而引起。
PLEEEEASE纠正我,如果我错了,我真的希望我只是错过了一些东西! 并不是说你总是可以编写一个以上的规则来满足你的需求,但是这实际上让我感到困扰,因为我有一个真正的用户需求的例子。
TL; DR
第二个你试图expression
(block of 'n' ANDs) OR X # with n > 0 # and X being a random logical expression (or in rewrite-terms: Rewrite-Cond set)
你不能用当前的逻辑运算符( [OR]
!
)