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

Nginx移除URL尾部斜杠规则仅首页不生效该如何解决

问题原因

你当前的规则失效是因为:

  • Nginx 会先将URI标准化,把路径中的多个连续斜杠合并为单个斜杠,所以sub.example.com///标准化后得到的URI是/
  • 你原有的rewrite ^/(.*)/$ /$1 permanent;规则需要匹配「/开头 + 任意内容 + /结尾」的结构,当URI仅为/时,无法满足规则的匹配条件,因此不会触发重定向。

修改方案

将你配置中的rewrite ^/(.*)/$ /$1 permanent;这一行替换为以下两段配置即可:

# 处理根路径的任意数量尾部斜杠,兼容带请求参数的场景
if ($request_uri ~ ^/+(\?.*)?$) {
    return 301 $scheme://$host$is_args$args;
}
# 处理非根路径的任意数量尾部斜杠,兼容原有的生效逻辑
rewrite ^/(.+)/+$ /$1 permanent;

生效验证

修改后先执行nginx -t验证配置语法无误,再执行nginx -s reload重载配置,即可覆盖所有场景:

  • 根路径多斜杠:sub.example.com/// => sub.example.com
  • 原有的非根路径所有场景保持正常生效
  • 带参数的根路径请求也可正常处理:sub.example.com///?id=1 => sub.example.com?id=1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 20:54:05