我目前正在尝试将规则应用于多个现代浏览器。我的浏览器检测基本上是这样的(例如Safari≥5,这可行):
RewriteCond %{HTTP_USER_AGENT} Version/(\d).*Safari/
RewriteCond %1 >4
RewriteRule ...
现在我想将多个检测链接在一起,并应用规则(如果它们中的任何一个匹配)。我试过这个:
RewriteCond %{HTTP_USER_AGENT} Version/(\d).*Safari/
RewriteCond %1 >4 [OR]
RewriteCond %{HTTP_USER_AGENT} Chrome/(\d\d)
RewriteCond %1 >22
RewriteRule ...
这不起作用(我怀疑因为[OR]仅适用于下一个规则,而不适用于下一个规则)。有没有办法让这个工作,或者我是否必须为每个浏览器列出一次RewriteRule?
答案 0 :(得分:0)
您不能在RewriteCond指令周围括起括号,因此您不能拥有一组条件,以便您检查((A和B)或(C和D))。因此,您需要为每个浏览器使用一对带有RewriteRule指令的测试。
答案 1 :(得分:0)
[OR]
指令不会影响链接在一起的多个条件。您需要分离2条条件链并复制规则:
RewriteCond %{HTTP_USER_AGENT} Version/(\d).*Safari/
RewriteCond %1 >4
RewriteRule ...
RewriteCond %{HTTP_USER_AGENT} Chrome/(\d\d)
RewriteCond %1 >22
RewriteRule ...