带问号的url重定向和参数保留--nginx rewrite

栗子:

http://host/demo/sub/z10?x=95&y=27=>http://host/demo/sub/10/95_27.png


问题:

1、重定向前url带有问号,且需要保留问号后的参数;

2、重定向后的参数以下划线连接。


解决:

http://host/demo/sub/z10?x=95&y=27=>http://host/demo/sub/10/95/27=>http://host/demo/sub/10/95_27.png


1、nginx rewrite正则匹配不会匹配问号后的参数,因此需要使用$arg_{参数名}来保留参数,且匹配规则要以问号结尾;

但如果直接重定向到最终结果,两个参数之间用下划线连接,会造成参数解析错误,因此第一步先去掉问号,生成中间结果:

 rewrite ^/(\w+)/(\w+)/z(\d+) /$1/$2/$3/$arg_x/$arg_y? permanent;

2、第一步重定向去掉了问号,下面只需要正则匹配参数就ok了:

rewrite ^/(\w+)/(\w+)/(\d+)/(\d+)/(\d+) /$1/$2/$3/$4_$5.png permanent;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值