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混合开发遇到的坑
下一篇:
相关文章
-
无相关信息