素材巴巴 > 程序开发 >

nginx截取请求uri中的url进行重定向

程序开发 2023-09-09 12:10:57

目标:

业务诉求:将请求url http://10.100.10.10/aaa/redirect?redirect_url=http://jenkins.xxx.com/job/test/50/test

重定向到redirect_url后面的url,进行页面展示

 实现方式:

首先,我们须用使用location 去匹配/aaa这个路由:

        location /aaa {access_log  /var/log/nginx/aaa.log;}

然后,通过if 正则去获取uri中的url:

if ( $request_uri ~* url=(.*?)$) 这里的url=是以url=为开始,作为截取的开头,(.*?)$正则匹配一个活多个字符到最后,作为取到的url

最后通过return 301的方式,让页面去跳转到对应的url:

        location /aaa {if ( $request_uri ~* url=(.*?)$) {return 301 $1;}access_log  /var/log/nginx/aaa.log;}

拓展: 

也可以根据这个规则,将uri中的部分字符截取出来,作为参数去进行个性化处理

例:

http://www.qq.com/news/id123test

1.截取news后面的值,作为参数处理:

location  /news/{if ($request_uri ~ /news/(.+))
 {
 set $url $1;
 }
 proxy_pass http://10.100.10.10/$url;
 }

2.截取中间的数据,作为uri:

location  /news/{if ( $request_uri ~* id(.*?)test)
 {
 set $url $1;
 }
 proxy_pass http://10.100.10.10/$url;
 }


标签:

上一篇: 记 Ionic2混合开发遇到的坑 下一篇:
素材巴巴 Copyright © 2013-2021 http://www.sucaibaba.com/. Some Rights Reserved. 备案号:备案中。