• 请不要在回答技术问题时复制粘贴 AI 生成的内容
19tj
V2EX  ›  程序员

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

  •  
  •   19tj · May 9, 2017 · 4027 views
    This topic created in 3465 days ago, the information mentioned may be changed or developed.
    x.x.com/read.php?368
    重定向到
    x.x.com/368.html
    试了好久了 T_T
    13 replies  •  2017-05-12 22:56:23 +08:00
    akira
    akira
    May 9, 2017
    1
    rewrite 规则应该是只对问号前有效?
    jarlyyn
    jarlyyn
    May 9, 2017
    2
    楼主是不熟悉正则么?
    19tj
    19tj
    OP
    May 9, 2017
    3
    @akira 好像是这么回事,我这两天一直在查阅
    19tj
    19tj
    OP
    May 9, 2017
    4
    @jarlyyn 不是不熟悉,讲真的,我完全不会
    akira
    akira
    May 9, 2017
    5
    rewrite ^/read.php /$args.html? last;
    rrfeng
    rrfeng
    May 9, 2017
    6
    这跟正则没关系。需要用到 query args
    19tj
    19tj
    OP
    May 9, 2017
    7
    @akira 哥们,我试几次,得到的结果是
    x.x.com/.html?571
    这样子的,有办法让它成为
    x.x.com/571.html
    这样不,前两天把小博客换成了 wp,就等这个 301 完成后切换了
    19tj
    19tj
    OP
    May 9, 2017
    8
    @rrfeng 那个。。。谢谢,我只是做了个博客,并不懂代码
    zxc337
    zxc337
    May 9, 2017
    9
    if ($args ~* "^([0-9]+)$") {
    set $id $1;
    set $args '';
    rewrite ^.*$ /$id.html last;
    }
    拿去吧
    19tj
    19tj
    OP
    May 9, 2017
    10
    @zxc337 先感谢,然后,奇怪了,结果还是跟 akira 同学提供的,
    rewrite ^/read.php /$args.html? last;
    一样,会跳到
    x.x.com/.html?571
    而不是
    x.x.com/571.html
    akira
    akira
    May 10, 2017
    11
    args 没拿到? 确认下 nginx 版本号。 要不你直接上 nginx 配置文件上来吧
    19tj
    19tj
    OP
    May 10, 2017
    12
    @akira 我用 lnmp 安装的,nginx 版本 1.10.0,配置文件是默认的,没有改动过,0.0
    19tj
    19tj
    OP
    May 12, 2017
    13
    @akira rewrite ^/read.php /$args.html? permanent;
    最终我这样写,就可以正常用了,也不知道为什么,非常感谢
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4216 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 43ms · UTC 01:06 · PVG 09:06 · LAX 17:06 · JFK 20:06
    ♥ Do have faith in what you're doing.