在配置文件中通常是在server{}中,要基于多条件判断进行跳转/拦截/回源等需求时,可以通过使用nginx set指令来实现。
set指令是用于定义一个变量,并且赋值。
条件判断可以根据nginx内置的全局变量进行判断然后使用set 赋值。
在nginx配置文件中使用如下:
set $rewriteFlag 0;
#这里可以加上条件判断,比如客户端ip为12.34.56.78/24时set 1 set $rewriteFlag '${rewriteFlag}1';
#这里可以加上条件判断,比如根据$http_referer/$cookie_name/$request_uri等判断进行赋值set 2 set $rewriteFlag '${rewriteFlag}2';
#这里的意思是当请求ip为12.34.56.78/24,且$http_referer/$cookie_name/$request_uri为你设置的条件
#那么进行跳转,看见了吧这就是利用多条件进行操作的过程。更复杂的多条件情况下可以自行判断构造。
if ($rewriteFlag= '012') { # rewrite ^(.*) https://www.mywebsite.com$request_uri break; }