Firebase Hosting配置:保留原URL路径跳转至指定HTML页面
解决方案:保留原URL的同时转发到指定HTML页面
问题出在你用了redirects配置,这会触发客户端跳转,浏览器地址栏会显示目标页面的URL。要实现URL不变但返回指定HTML内容的效果,得改用rewrites(服务器端转发),而且要注意规则匹配顺序——Firebase Hosting会按rewrites数组的顺序依次匹配,所以要把特定路径的规则放在通配符规则前面。
修改后的firebase.json配置如下:
{ "firestore": { "rules": "firestore.rules", "indexes": "firestore.indexes.json" }, "hosting": { "public": "public", "ignore": [ "firebase.json", "**/.*", "**/node_modules/**" ], "rewrites": [ // 优先匹配特定路径,转发到目标HTML { "source": "/suppliers/add-supplier", "destination": "/add-supplier.html" }, // 通配符规则放在最后,处理其他所有路径 { "source": "**", "destination": "/index.html" } ], "cleanUrls": true }, "storage": { "rules": "storage.rules" } }
关键修改说明:
- 删除原
redirects数组里的规则,改用rewrites实现服务器端转发,不会改变浏览器地址栏的URL - 把
/suppliers/add-supplier的规则放在**通配符规则之前,确保Firebase先匹配这条特定路径,而不是直接走默认的index.html规则 - 配置生效后,访问
mysite.com/suppliers/add-supplier时,浏览器地址栏保持原URL不变,服务器会悄悄返回add-supplier.html的内容
内容的提问来源于stack exchange,提问作者PewK
相关产品推荐
相关产品推荐

