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

Gatsby搭配Nginx出现尾部斜杠重复跳转问题排查求助

问题根因排查

你遇到的两次跳转问题核心是Nginx内置的目录自动加斜杠重定向逻辑和Gatsby的静态文件结构、无尾部斜杠的路径需求不匹配,具体出在location /块的try_files $uri $uri/ =404;配置:

  • 当你访问无尾部斜杠的路径(如/about)时,Nginx会先查找$uri(即/about文件),找不到就会匹配$uri/(即/about目录)
  • 如果该目录存在,Nginx内置逻辑会直接返回301重定向到带尾部斜杠的/about/路径
  • 之后你的Gatsby配置或重定向规则又会把带斜杠的路径跳回无斜杠版本,就形成了两次不必要的跳转
修复方案

只需要修改server_name www.example.com对应的443 server块配置即可:

  1. 首先在server块下新增3条配置,禁用Nginx默认的强制全路径重定向规则,避免自动补全域名、端口、斜杠:
absolute_redirect off;
server_name_in_redirect off;
port_in_redirect off;
  1. 替换原有的location /块内容,调整文件查找逻辑,去掉$uri/匹配,同时主动把带斜杠的路径重定向到无斜杠版本:
location / {
    # 所有带尾部斜杠的请求统一永久重定向到无斜杠版本
    rewrite ^/(.*)/$ /$1 permanent;
    # 调整静态文件查找顺序,优先匹配对应html文件、目录下的index.html,不会触发目录自动加斜杠逻辑
    try_files $uri $uri.html $uri/index.html =404;
}

修改完成后先执行nginx -t验证配置语法正确,再执行nginx -s reload重载配置即可生效。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 00:06:00