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

Firebase Hosting路由重写异常求助:无扩展名路径失效

Firebase Hosting路由规则修正方案

针对你遇到的三个路由问题,逐一修正并说明原因:

问题1:第一条规则(/access-token/somefolder/else.html)不生效

原规则用source精确匹配,但测试请求带双斜杠(//access-token/...),和source定义的单斜杠路径不匹配,导致触发最后一条兜底规则。

修正:将source改为regex,兼容单/双斜杠开头的路径:

{
  "regex": "^//?access-token/somefolder/else.html$",
  "destination": "/access-token/2.json"
}

//?表示匹配0个或1个斜杠,同时覆盖单斜杠和双斜杠的请求场景。

问题2:无扩展名的数字路径(/access-token/12)返回404

原正则^/access-token/[\\d]+$存在两个潜在问题:

  1. 部分环境对\d的转义处理可能有差异;
  2. 未覆盖路径末尾带斜杠的情况(比如/access-token/12/)。

修正:改用[0-9]+替代[\d]+,并添加/?兼容末尾斜杠:

{
  "regex": "^/access-token/[0-9]+/?$",
  "destination": "/access-token/2.json"
}

/?表示允许路径末尾有0个或1个斜杠,覆盖更多请求场景。

完整修正后的规则集

"rewrites": [
  {
    "regex": "^//?access-token/somefolder/else.html$",
    "destination": "/access-token/2.json"
  },
  {
    "regex": "^/access-token/[0-9]+/?$",
    "destination": "/access-token/2.json"
  },
  {
    "regex": "^/access-token/[0-9]+\\.json$",
    "destination": "/access-token/1.json"
  },
  {
    "source": "**",
    "destination": "/index.html"
  }
]

额外注意事项

  • 规则顺序不可调整:Firebase会按顺序匹配第一条符合条件的规则,特定规则必须放在兜底规则(**)之前;
  • 静态文件优先级:如果access-token目录下存在与规则匹配的文件/目录(比如access-token/12),Firebase会优先返回静态资源,而非执行rewrite。若要强制走规则,需确保该路径下无对应静态资源。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 18:30:58