我已经设置了一个包含三个页面的firebase托管项目和我的自定义域设置。根据网址中的不同路径命中这些网页。 firebase.json文件如下
{
"hosting": {
"public": "public",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
],
"rewrites": [ {
"source": "/main",
"destination": "/index.html"
},{
"source": "/waitlistview/**",
"destination": "/waitlistview.html"
},{
"source": "/mwaitlistview/**",
"destination": "/waitlistview-minimal.html"
}
],
"cleanUrls": true
}
}
现在,当我尝试网址时:
foodini.co.in/waitlistview
不是在404页面上出错,我仍然点击了我的页面
然而,如果我点击了网址:
foodini.co.in/mwaitlistview
我按照预期得到了404页面。
如何让第一个网址也转到404页面
答案 0 :(得分:0)
根据firebase托管文档,Hosting首先尝试将公共目录中的文件映射到url中的路径。只有没有这样的文件才能重写生效。
就我而言,我在公共文件夹中直接有一个文件/waitlistview.html。因此,即使没有尾部斜杠,firebase托管也只是将URL映射到该文件。从未发生重写,因此没有404页面
对于任何有兴趣的人:
您的默认域名直接映射到index.html,无需任何特定路径
同样/ waitlistview **不匹配/ waitlistview / Ahmedabad / xyz路径通过GLOB匹配所以请在**之前斜杠
答案 1 :(得分:0)
添加
"trailingSlash": false,
行前
"cleanUrls": true
原因是“foodini.co.in/waitlistview”不匹配“/waitlistview/”,它会匹配“/waitlistview”。