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

如何将Firebase Hosting的API路由重定向到外部带端口的URL

问题原因

你遇到的/api/前缀请求直接返回index.html的问题,核心是两个配置问题:

  1. 现有重定向规则没有正确捕获并传递/api/之后的路径片段,就算触发重定向也无法把后续路径和参数传递到目标地址
  2. 旧版部署的配置缓存也可能导致重定向规则未被触发,直接走了全局重写规则返回SPA入口文件

修正方案

修改firebase.json中的redirects规则,使用通配符捕获/api/后的路径片段,Firebase会默认保留原有查询参数无需额外配置:

{
  "hosting": {
    "public": "dist/public",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ],
    "redirects": [
      {
        "source": "/api/**",
        "destination": "http://<domain>:<port>/$1",
        "type": 302
      }
    ],
    "rewrites": [
      {
        "source": "**",
        "destination": "/index.html"
      }
    ]
  }
}

配置说明

  • source中的**会匹配/api/之后的所有路径,捕获到的内容可以通过$1在目标地址中引用
  • Firebase Hosting执行规则的优先级为:静态文件匹配 > 重定向规则 > 重写规则,只要重定向规则匹配成功就不会走到全局重写返回index.html的逻辑
  • 无需额外处理查询参数,Firebase会自动将原请求的查询参数追加到重定向目标地址

验证步骤

部署完成后优先清理浏览器缓存,或者用无痕模式、curl命令直接测试避免缓存干扰:
curl -I https://<domain>.web.app/api/v1/db/search?query=test
正常返回结果会包含响应头Location: http://<domain>:<port>/v1/db/search?query=test,代表重定向配置生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 15:24:05