Nginx Rewrite 更改url参数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx Rewrite 更改url参数相关的知识,希望对你有一定的参考价值。

参考技术A 需求:页面是nginx配置的反向代理,根据url匹配目录/abtest/ 轮询跳转a,b两个页面(显性跳转)。参数有cid , c3 ,c6 等。根据参数c6=a|b 更改其他参数如:cid 为指定数值
输入(2次):
192.168.1.252/abtest/lp1.html?cid=1&c3=2&c6=a
分别页面跳转到:
http://192.168.1.252/ab/a/lp1.html?cid=1&c3=2&c6=a ----》echo a
http://192.168.1.252/ab/b/lp1.html?cid=1&c3=2&c6=a----- 》echo b

配置:
虚拟主机配置文件中加入(监听a页面的server段里):

这里单纯是修改参数的部分。 $1是前面(.*)的值,如 域名 / 后输入的xxx.html。
$query_string 内置变量是url参数。
~* 正则匹配
$arg_参数名 接收源url参数的值 。
最后的? 号 表示不会再转发传递过来原地址的问号?后面的参数那部分,最后如果不加? 就会在更改完参数后,再次连上一段源地址的参数。
如:输入192.168.1.252/abtest/lp1.html?cid=1&c3=2&c6=a
按照以上配置应该跳转到 http://192.168.1.252/ab/a/lp1.html?cid=2&c3=2&c6=a
$arg_参数名最后不加? 就会显示 http://192.168.1.252/ab/a/lp1.html?cid=2&c3=2&c6=a&cid=1&c3=2&c6=a

整体配置:

以上是关于Nginx Rewrite 更改url参数的主要内容,如果未能解决你的问题,请参考以下文章

Linux--nginx域名绑定-url rewrite

nginx URL重写(rewrite)

nginx URL重写(rewrite)

nginx的rewrite 跳转后原URL不变,怎么写?

linux---集群架构初探(24)Nginx Rewrite

灵活使用rewrite