nginx配置文件是不支持if嵌套、并且不支持类似shell 的 && 和 || 的写法 ,这样就必须想别的办法解决,是的,可以变量做flag标记的方式来解决,网上也有很多例子。
set $flag 0;
if ( $host = "abc.def.com" ){
set $flag "1";
}
if ( $request_uri = "/aaa.html" ){
set $flag "${flag}1";
}
if ( $http_user_agent ~* "mobile" ){
set $flag "${flag}1";
}
if ( $http_user_agent ~* "android" ){
set $flag "${flag}1";
}
if ( $flag = "1111" ){
return 301 http://www.qwe.com/qwert;
}
if指令后面要有空格,最后有几个1表示有几个判断。
转载请注明:duha.net » nginx多条件if判断后301