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

如何合并两类Nginx Location指令?处理/themes/目录指定后缀资源

解决方案

要实现仅对/themes/目录下指定后缀的文件应用特定规则,同时保留现有两个互斥的Location指令且不使用if,可以利用Nginx的Location匹配优先级规则调整配置顺序和规则类型:

# 1. 优先匹配/themes/目录下的目标后缀文件
location ~* ^/themes/.*\.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc)$ {
    # 填写针对/themes/下静态文件的配置,例如:
    expires 30d;
    add_header Cache-Control "public, immutable";
    # 其他所需配置...
}

# 2. 确保/images/目录的请求优先匹配(使用^~跳过后续正则匹配)
location ^~ /images/ {
    # 填写/images/目录的原有配置
    ...
}

# 3. 全局匹配其他目录下的目标后缀文件
location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc)$ {
    # 填写原有全局静态文件配置
    ...
}

原理说明

  • Nginx对正则Location(~*)的匹配按配置文件中的顺序执行,第一个匹配到的规则即生效。把/themes/专属规则放在最前面,能确保这类请求被优先处理,不会落入全局正则规则。
  • 用^~标记/images/的规则,会让它的优先级高于后续正则规则,确保所有以/images/开头的请求都走这个规则,和全局正则规则互斥,符合原有需求。
  • 最后一个全局正则规则会处理所有不在/themes/、/images/目录下的目标后缀文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 09:12:49