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

如何仅为Firebase Dynamic Links设置自定义子域名且不影响Hosting服务

报错是因为部署Firebase Hosting时,默认配置覆盖了link.example.com的路由规则,未配置Dynamic Links匹配规则,导致服务无法正常接收请求。你可以按照以下步骤配置两个子域名的能力隔离:

第一步:在Firebase控制台创建两个独立Hosting站点

进入Firebase控制台的Hosting页面,新增两个站点:

  • 第一个站点用于托管Web应用,绑定app.example.com,可命名为app-web
  • 第二个站点专门用于Dynamic Links服务,绑定link.example.com,可命名为dynamic-links

第二步:配置firebase.json规则

修改项目根目录下的firebase.json文件,采用多站点托管配置,分别匹配两个子域名的路由逻辑:

{
  "hosting": [
    {
      "target": "app",
      "public": "build", // 替换为你的Web应用构建产物的实际存放目录
      "ignore": [
        "firebase.json",
        "**/.*",
        "**/node_modules/**"
      ],
      // 单页应用常规路由配置,多页应用可自行调整rewrites规则
      "rewrites": [
        {
          "source": "**",
          "destination": "/index.html"
        }
      ]
    },
    {
      "target": "links",
      "public": "dynamic-link-public", // 可自定义目录,只需保证目录存在即可
      "ignore": ["**"], // 忽略所有静态资源,所有请求直接走Dynamic Links
      "rewrites": [
        {
          "source": "**",
          "dynamicLinks": true
        }
      ]
    }
  ]
}

第三步:绑定本地部署target

在本地终端执行Firebase CLI命令,将配置中的target和控制台创建的站点绑定:

# 替换后面的app-web为你在控制台创建的Web应用托管站点的ID
firebase target:apply hosting app app-web
# 替换后面的dynamic-links为你在控制台创建的Dynamic Links专用站点的ID
firebase target:apply hosting links dynamic-links

第四步:部署生效

在你为Dynamic Links配置的public目录(上述配置中为dynamic-link-public)下创建一个空白的index.html文件(避免部署时报目录为空的错误),之后执行部署命令即可:

firebase deploy --only hosting

配置完成后,link.example.com的所有请求会自动转发到Dynamic Links服务,app.example.com的所有请求会正常响应你托管的Web应用资源,两个子域名的能力完全隔离。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 11:48:03