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

Firebase Hosting能否重写URL并将路径部分传递至Cloud Run?

Firebase Hosting代理Cloud Run:剥离/api前缀的正确配置

别担心,Firebase Hosting完全支持你想要的这种带前缀剥离的代理功能,你之前的问题是没用到路径重写的捕获组传递特性,下面是具体的解决方法:

方法一:使用正则表达式(推荐)

通过正则捕获/api后面的路径部分,再把捕获到的内容传给Cloud Run服务的对应路径。修改你的firebase.json配置如下:

"hosting": {
  // 其他hosting配置...
  "rewrites": [
    {
      "regex": "^/api(/.*)?$",
      "run": {
        "serviceId": "my-api",
        "region": "us-central1",
        "path": "$1"
      }
    }
  ]
}

配置说明:

  • regex: "^/api(/.*)?$":匹配所有以/api开头的路径,包括/api本身((/.*)?表示后面的路径可选),并把/api之后的部分(比如/something)捕获为$1。
  • path: "$1":将捕获到的路径片段传递给Cloud Run服务,这样:
    • 请求/api → 路由到Cloud Run的/
    • 请求/api/something → 路由到Cloud Run的/something

方法二:使用通配符source

如果你更习惯通配符写法,也可以用**来匹配路径,然后通过$1引用匹配到的内容:

"hosting": {
  // 其他hosting配置...
  "rewrites": [
    {
      "source": "/api/**",
      "run": {
        "serviceId": "my-api",
        "region": "us-central1",
        "path": "/$1"
      }
    }
  ]
}

这里的**会匹配/api之后的所有内容(比如something),path: "/$1"就会把请求路由到Cloud Run的/something。

验证与部署

  1. 确认Cloud Run服务的对应路径(比如/something)已经正确实现并部署。
  2. 用firebase deploy --only hosting更新你的Hosting配置。
  3. 测试/api和/api/something请求,确认它们都能正确路由到Cloud Run的对应端点。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 12:32:59