server {
listen 80;
server_name AAA.com;
access_log logs/AAA.com.log;
location / {
set $flag "false";
if ( $http_user_agent ~* MQQBrowser/22|MQQBrowser/24|MQQBrowser/1.5|Opera\ Mobil|Mozilla/4|CMSurlClient) {
rewrite ~* http://h.XXX.com permanent;
set $flag "true";
}
if ( $flag ~ true ) { break; }
if ($http_user_agent ~* Opera\ Mini|UCWEB7) {
rewrite ~* http://3g.XXX.com permanent;
set $flag "true";
}
if ( $flag ~ true ) { break; }
if ($http_user_agent ~* MQQBrowser/1.0|Mozilla/5.0) {
rewrite ~* http://m.XXX.com permanent;
set $flag "true";
}
if ( $flag ~ true ) { break; }
if ($http_user_agent ~* NokiaN95/Gobrowser/160) {
rewrite ~* http://wap.XXX.com permanent;
set $flag "true";
}
}
}
因为nginx会顺序的执行所有if,各个条件也有优先级
所以设置开关参数,满足匹配后禁止继续执行后面的if语句