【Nginx】匹配重定向问题

Nginx 匹配重定向问题

需求

由于老地址不再维护,需要将请求以一定的格式转到新地址。

例如:

http://xxx/query/123 转到 https://xxx/query.html?no=123

解决方法

配置Nginx匹配转发就可解决问题。

配置如下:

location ~ /query {
    rewrite ^/query/(.*) https://xxx/query.html?no=$1 permanent;
}

这样就可以将监听域名下的/query/123重定向到/query.html?no=123

更深层次的问题

使用中发现如果参数中123带有特殊符号,比如有两个/存在时,重定向过去的参数只会有一个/.

http://xxx/query/12//3 会重定向到 https://xxx/query.html?no=12/3,少了一个/

可能是由于location匹配时,将后面都作为请求地址匹配,自动将//解析成了/(待验证)。

可以使用$request_uri将整个请求链接匹配。

配置如下:

locat
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值