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

Nginx配置:移除URI中的.html后缀且不修改Href链接

解决Nginx静态页面URI自动移除.html后缀的配置方案

核心思路

要实现两个核心目标,同时兼容本地无服务器场景:

  1. 用户访问带.html后缀的链接时,自动重定向到不带后缀的URI(如/about.html → /about)
  2. 用户访问不带后缀的URI时,Nginx能自动匹配对应的.html文件(如/about → 读取about.html)
    全程无需修改页面原有Href链接。

完整配置示例

在Nginx的server块中添加以下配置:

server {
    listen 80;
    server_name your-domain.com; # 替换为你的域名或localhost
    root /path/to/your/static/files; # 替换为静态文件根目录

    # 仅当.html文件真实存在时,重定向到无后缀URI
    if (-f $request_filename) {
        rewrite ^/(.*)\.html$ /$1 permanent;
    }

    # 处理无后缀请求,自动匹配对应.html文件
    location / {
        try_files $uri $uri.html $uri/ =404;
    }

    # 可选:设置默认索引页
    index index.html index.htm;
}

关键细节说明

  • 避免重定向循环的核心:if (-f $request_filename)的判断是关键——只有当请求的.html文件真实存在时,才执行重定向,彻底杜绝了无效重定向引发的循环问题。
  • 静态文件匹配逻辑:try_files指令会依次尝试:直接访问请求URI → 尝试添加.html后缀访问 → 尝试访问目录 → 返回404,确保无后缀URI能正确加载对应静态文件。
  • 永久重定向的优势:permanent返回301状态码,既利于搜索引擎收录,也能让浏览器缓存重定向规则,减少重复请求。

本地兼容说明

由于页面原有Href链接仍保留.html后缀,本地无服务器时直接打开静态文件,链接能直接指向对应的.html文件,完全不影响本地预览;部署到Nginx后,会自动完成后缀移除的重定向,完美兼容两种场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 20:35:26