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

Firebase Hosting部署SPA遇ERR_TOO_MANY_REDIRECTS及动态路由问题

解决Firebase Hosting部署React SPA动态路由的重定向循环与404问题

哈哈,这个坑我之前也踩过!你现在的问题根源太明显——那个redirect配置完全是在搞“自己重定向自己”,浏览器收到请求后被要求跳去同一个URL,反复循环可不就报ERR_TOO_MANY_REDIRECTS嘛😅

正确的配置思路:用Rewrite而非Redirect

React SPA的路由是前端路由,所有路径(包括带动态参数的/home/:id)都需要交由React Router来解析,而不是让Firebase Hosting做重定向。正确的做法是用rewrites规则,让Firebase把所有非静态资源的请求都转发到index.html,由React应用来处理路由逻辑。

修正后的firebase.json配置

把你原来的redirects替换成rewrites,完整配置如下:

{
  "hosting": {
    "public": "build",
    "ignore": ["firebase.json", "**/.*", "**/node_modules/**"],
    "rewrites": [
      {
        "source": "**",
        "destination": "/index.html"
      }
    ]
  }
}

为什么之前用Rewrite会出现404?

你之前尝试rewrite出现404,大概率是这两个原因之一:

  • 没有正确执行npm run build:确认你已经在项目根目录运行了构建命令,生成了完整的build文件夹,里面必须包含index.html文件
  • Rewrite规则范围太窄:如果只写了/home/:id作为source,那其他路由(比如/about)或者更深的路径还是会返回404,用**作为source可以覆盖所有非静态资源的请求(Firebase会自动忽略已存在的静态文件,比如CSS、JS、图片等)

验证配置

修改完firebase.json后,重新部署到Firebase:

firebase deploy --only hosting

之后再访问https://www.example.com/home/123这类动态路径,React Router就能正确解析:id参数,既不会有重定向循环,也不会返回404了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:25:06