原理就是加入变量,通过变量的判断间接实现与或
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; }