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

Nginx Location正则匹配含唯一ID子目录的JPG图片方法咨询

Nginx正则匹配第四子目录为数字ID的JPG图片

你的正则写法有几个关键问题导致无法生效:

  • 正则里的^是匹配整个字符串的开头,但这里你是在/media/photos/thumbs/之后匹配ID,这个^会让正则找不到匹配项,必须去掉。
  • .jpg里的.没有转义,正则中.代表任意字符,会误匹配到1xjpg这类不符合要求的内容,要写成\.jpg。
  • \/*的写法冗余,根据需求选择更精准的匹配规则即可。

正确的正则写法

情况1:仅匹配ID目录下直接的JPG文件(比如/media/photos/thumbs/00001/1.jpg)

location ~ ^/media/photos/thumbs/(\d+)/[^/]*\.jpg$ {
    # 你的配置内容
}
  • ^放在整个路径开头,确保从字符串起始位置匹配,避免其他路径误匹配。
  • (\d+)匹配纯数字的ID目录。
  • [^/]*匹配ID目录下的文件名(不包含斜杠,仅匹配直接在ID目录下的文件)。
  • \.jpg$确保结尾是.jpg,$匹配字符串结尾,避免匹配到.jpgxxx这类无效文件。

情况2:匹配ID目录及其所有子目录下的JPG文件(比如/media/photos/thumbs/00001/sub/2.jpg)

location ~ ^/media/photos/thumbs/(\d+)/.*\.jpg$ {
    # 你的配置内容
}
  • .*匹配ID目录之后的任意路径内容(包括子目录),只要最终是.jpg结尾就会被匹配。

如果需要忽略大小写匹配(比如匹配.JPG、.Jpg),把~换成~*即可:

location ~* ^/media/photos/thumbs/(\d+)/.*\.jpg$ {
    # 你的配置内容
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 15:22:05