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

Nginx配置:避免根URL自动追加/index并保留.html移除规则

Nginx 移除HTML后缀同时保留根URL为/的配置方案

你当前的rewrite规则会匹配所有.html结尾的URL,包括根目录下的/index.html。当访问/时,Nginx的index指令会自动内部定位到index.html,此时触发rewrite规则,将/index.html重写为/index,导致地址栏显示/index。

要解决这个问题,只需要调整rewrite规则,让它跳过对/index.html的匹配,同时保留其他页面的.html后缀移除功能,具体配置如下:

修改后的完整配置

server {
    # 保留你原有的其他配置

    # 移除.html后缀(排除根目录的index.html)
    location ~ ^/(?!index\.html$)(.*)\.html$ {
        rewrite ^/(.*)\.html$ /$1 permanent;
    }

    # Web根目录与文件处理
    location / {
        root /var/lib/jenkins/workspace/test;
        index index.html index.htm;
        try_files $uri $uri.html $uri/ /index.html;
    }
}

配置说明

  • 正则中的(?!index\.html$)是负向前瞻断言,表示只有当URL不是以/index.html结尾时,才会触发这条rewrite规则,这样访问根URL/时,内部加载的index.html不会被重写,地址栏保持为/。
  • 原有location /中的try_files配置依然生效:访问/test时,会依次尝试查找test文件、test.html文件、test目录,最后 fallback 到index.html,完美配合rewrite实现无后缀访问。
  • 用户直接访问/test.html这类URL时,会被301重定向到/test,实现后缀移除的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 05:42:11