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

Nginx如何为URL添加尾部斜杠 排除含点及指定前缀路径

Nginx 重定向规则合并方案

直接可用的合并后规则

rewrite ^(?!/no-trailing-slash)([^.]*[^/])$ $1/ permanent;

规则逻辑说明

  • 排除规则1:^(?!/no-trailing-slash) 负向先行断言,所有以/no-trailing-slash开头的URL都不会触发重定向
  • 排除规则2:[^.]* 匹配路径中不含.的请求,自动跳过所有带后缀的静态资源(如.xml、.js、.png等)
  • 触发规则:[^/] 匹配当前URL末尾不是斜杠的请求,满足所有条件后自动在末尾补斜杠

效果验证(完全匹配需求示例)

  • www.site.com/foo → 符合触发条件,重定向到www.site.com/foo/
  • www.site.com/foo/baz → 符合触发条件,重定向到www.site.com/foo/baz/
  • www.site.com/foo.xml → 路径包含.,不触发重定向
  • www.site.com/no-trailing-slash → 匹配排除前缀,不触发重定向
  • www.site.com/no-trailing-slash/child → 匹配排除前缀,不触发重定向

多排除场景扩展方案(可选)

如果后续需要添加更多排除路径,建议用map配置更易维护:

# 需写在Nginx的http配置块中
map $request_uri $need_trailing_slash {
    default 1;
    ~*\. 0; # 所有含.的路径不添加尾部斜杠
    ~*^/no-trailing-slash 0; # 特定前缀路径不添加
    # 后续新增排除规则直接加在这即可
}

# 写在对应站点的server配置块中
if ($need_trailing_slash = 1) {
    rewrite ^(.*[^/])$ $1/ permanent;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 09:57:02