You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Nginx Rewrite规则中从指定URL提取整数?

解决Nginx URL重写的正则问题

没问题,我帮你调整正则表达式,完美搞定这个URL重写需求!

问题分析

你原来的配置有两个关键小问题:

  1. 正则表达式没匹配到URL末尾的.jpg后缀,导致只有完全不带后缀的路径才会被命中,自然没法正确提取参数;
  2. 配置语句末尾缺少必要的分号,这会直接导致Nginx启动失败哦。

正确的Nginx配置

直接替换你原来的location块即可:

location /open/ {
    rewrite ^/open/M-(\d+)_L-(\d+)_N-(\d+)_I-(\d+)\.jpg$ /open.php?M=$1&L=$2&N=$3&I=$4 last;
}

配置细节解释

  • \d+:等价于[0-9]+,专门用来匹配任意长度的整数参数值,刚好适配你说的“长度可变的整数”需求;
  • \.jpg$:精确匹配URL末尾的.jpg后缀,确保只有符合格式的图片请求才会被重写;
  • last:这个标记告诉Nginx,完成这次重写后就停止当前location块的后续处理,转而用新生成的URI(也就是/open.php?xxx)去匹配其他规则;
  • 注意:Nginx配置里直接用&分隔参数就行,不用转义成&——那是HTML里的转义规则,在Nginx配置里不需要。

额外提示

如果后续有参数顺序调整或新增参数的可能,也可以用更灵活的正则来匹配每个X-数字的格式,但针对你当前固定的参数顺序和格式,上面的配置已经足够简洁高效了。

内容的提问来源于stack exchange,提问作者JoshGeake

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:28:35