nginx设置根据参数进行跳转

线上有个老系统要下线,发现有个老的接口还有人在用。其实之前这个接口也只是根据URL中的target参数进行一个跳转。这个直接在nginx里面做也是比较简单的,直接从$arg_target里把匹配的目标地址(包括参数)都提取出来,然后放到rewrite里面就OK。因为对应的参数实际已经被匹配下来了(只有GET请求,没有POST的),所以rewrite语句里面加了一个‘?“避免自动把之前的$args加到后面。


location =/redir.do {
root /home/nginx/webpages/;
       set $to_url 'www.xxx.net';
       if ( $arg_target ~* 'https?://(.*)' ) {
             set $to_url $1;
       }
       if ( $arg_target ~* 'https?%2F(.*)' ) {
             set $to_url $1;
     }
     rewrite ^ http://$to_url? break;
}
此条目发表在nginx分类目录。将固定链接加入收藏夹。

发表回复