nginx rewrite 怎么匹配?后面的纯数字

2017-05-09 15:31:30 +08:00
 19tj
x.x.com/read.php?368
重定向到
x.x.com/368.html
试了好久了 T_T
3249 次点击
所在节点    程序员
13 条回复
akira
2017-05-09 15:35:11 +08:00
rewrite 规则应该是只对问号前有效?
jarlyyn
2017-05-09 15:36:03 +08:00
楼主是不熟悉正则么?
19tj
2017-05-09 15:47:00 +08:00
@akira 好像是这么回事,我这两天一直在查阅
19tj
2017-05-09 15:47:22 +08:00
@jarlyyn 不是不熟悉,讲真的,我完全不会
akira
2017-05-09 17:44:29 +08:00
rewrite ^/read.php /$args.html? last;
rrfeng
2017-05-09 19:14:23 +08:00
这跟正则没关系。需要用到 query args
19tj
2017-05-09 21:00:31 +08:00
@akira 哥们,我试几次,得到的结果是
x.x.com/.html?571
这样子的,有办法让它成为
x.x.com/571.html
这样不,前两天把小博客换成了 wp,就等这个 301 完成后切换了
19tj
2017-05-09 21:01:35 +08:00
@rrfeng 那个。。。谢谢,我只是做了个博客,并不懂代码
zxc337
2017-05-09 21:28:44 +08:00
if ($args ~* "^([0-9]+)$") {
set $id $1;
set $args '';
rewrite ^.*$ /$id.html last;
}
拿去吧
19tj
2017-05-09 23:43:50 +08:00
@zxc337 先感谢,然后,奇怪了,结果还是跟 akira 同学提供的,
rewrite ^/read.php /$args.html? last;
一样,会跳到
x.x.com/.html?571
而不是
x.x.com/571.html
akira
2017-05-10 01:47:47 +08:00
args 没拿到? 确认下 nginx 版本号。 要不你直接上 nginx 配置文件上来吧
19tj
2017-05-10 12:44:42 +08:00
@akira 我用 lnmp 安装的,nginx 版本 1.10.0,配置文件是默认的,没有改动过,0.0
19tj
2017-05-12 22:56:23 +08:00
@akira rewrite ^/read.php /$args.html? permanent;
最终我这样写,就可以正常用了,也不知道为什么,非常感谢

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

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

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

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

© 2021 V2EX