Apache mod_rewrite%{HTTP_USER_AGENT}不等于+或条件(列表)

时间:2013-01-03 12:21:13

标签: apache .htaccess mod-rewrite redirect

我目前的情况是这样的:

RewriteCond %{HTTP_USER_AGENT} "android|blackberry|ipad|iphone|ipod|iemobile|opera mobile|palmos|webos|googlebot-mobile" [NC]

我想知道如何将这个条件换成if not上面的一个值。

我想做类似的事情:

RewriteCond %{HTTP_USER_AGENT} !="android|blackberry|ipad|iphone|ipod|iemobile|opera mobile|palmos|webos|googlebot-mobile" [NC]

但它不起作用。

2 个答案:

答案 0 :(得分:5)

问题是你在operamobile之间有一个空格,这会导致mod_rewrite将其解析为多个参数。尝试使用括号而不是引号与!一起使用并转义空格:

RewriteCond %{HTTP_USER_AGENT} !(android|blackberry|ipad|iphone|ipod|iemobile|opera\ mobile|palmos|webos|googlebot-mobile) [NC]

答案 1 :(得分:0)

非常接近,您不需要在否定=之后添加!

RewriteCond %{HTTP_USER_AGENT} !"android|blackberry|ipad|iphone|ipod|iemobile|opera mobile|palmos|webos|googlebot-mobile" [NC]