[Nginx] 重写地址时获取不到以 0 结尾的数字

2022-05-24 11:27:30 +08:00
 s609926202

location 规则如下:

server_name baidu.cn;
location ~ ^/f/([0-9]+) {
	set $port_num $1;
	rewrite ^/f/(.*) http://baidu.cn/?short=$port_num permanent;
}

访问 baidu.cn/f/88 时,$port_num 是 88. 而访问 baidu.cn/f/5000 时,$port_num 是 5 而不是 5000. 有知道是什么原因的吗、

1203 次点击
所在节点    NGINX
1 条回复
eason1874
2022-05-24 14:39:13 +08:00
这配置,我测试没问题,应该不是这里导致的异常

另外,只是重写的话,一句 rewrite 就够了,不用 location 匹配

rewrite ^/f/([0-9]+)$ http://baidu.cn/?short=$1 permanent;

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/854921

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX