[Nginx] if 条件判断 与或 实现方法

原理就是加入变量,通过变量的判断间接实现与或

1、与 实现方法


set $a 0;
if ( $remote_addr != '' ){
set $a 1;
}
if ( $http_x_forwarded_for != '' ){
set $a 1$a;
}
if ( $a = 11 ){
return 404
}

2、或 实现方法

拿上一篇文章的示例来说,符合条件的走http协议,不符合条件的走https协议

set $a 0;
if ($request_uri ~* .*/upload/resource ) {
set $a 1;
}
if ($request_uri ~* /abc/abc ) {
set $a 1;
}
if ( $a = 1 ){
return 301 http://$server_name$request_uri;
}
if ( $a = 0 ){
return 301 https://$server_name$request_uri;
}

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注