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

如何移除Firebase Hosting自定义域名URL末尾的.html后缀?

移除Firebase Hosting页面URL的.html后缀

解决这个问题需要同时调整页面链接和Firebase Hosting的配置,具体步骤如下:

1. 修改HTML中的链接引用

把所有<a>标签里的.html后缀去掉,比如你原来的代码:

<a href="page1.html" class="link-1">Click to go to page 1</a>

改成:

<a href="page1" class="link-1">Click to go to page 1</a>

这样用户点击链接后,地址栏会直接显示www.customdomain.com/page1。

2. 配置Firebase Hosting的重写规则

Firebase Hosting默认不会自动把无后缀的路径映射到对应的.html文件,需要在firebase.json里添加重写规则,让服务器知道访问/page1时要返回/page1.html的内容。

修改你的firebase.json文件,更新hosting部分的配置:

{
  "hosting": {
    "public": "public", // 这里是你的静态文件目录,根据实际情况调整
    "rewrites": [
      // 优先处理静态资源(避免把JS/CSS等也重写)
      {
        "source": "!/(*.html|*.js|*.css|*.png|*.jpg|*.gif|*.svg|*.ico)",
        "destination": "/$1.html"
      },
      // 单页应用的兜底规则(如果不需要可以去掉)
      {
        "source": "**",
        "destination": "/index.html"
      }
    ]
  }
}

这个规则的作用是:除了明确带后缀的静态资源(比如.js、.css、图片等),所有无后缀的路径都会被映射到同名的.html文件。

3. 可选:兼容旧的带后缀URL(SEO友好)

如果之前有用户收藏了带.html的链接,或者搜索引擎已经收录了这些URL,可以添加301永久重定向,把带后缀的地址跳转到无后缀版本,避免流量丢失。在firebase.json的hosting里添加redirects配置:

{
  "hosting": {
    // 其他配置...
    "redirects": [
      {
        "source": "**/*.html",
        "destination": ":splat",
        "type": 301
      }
    ]
  }
}

:splat是Firebase的占位符,会自动去掉.html后缀,比如/page1.html会跳转到/page1。

完成以上步骤后,重新部署你的网站:

firebase deploy --only hosting

这样就能实现所有页面URL不带.html后缀的效果了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 21:23:19