Firebase托管重写全局行为问题

时间:2017-10-29 22:06:13

标签: firebase firebase-hosting

我已经设置了一个包含三个页面的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页面

2 个答案:

答案 0 :(得分:0)

根据firebase托管文档,Hosting首先尝试将公共目录中的文件映射到url中的路径。只有没有这样的文件才能重写生效。

就我而言,我在公共文件夹中直接有一个文件/waitlistview.html。因此,即使没有尾部斜杠,firebase托管也只是将URL映射到该文件。从未发生重写,因此没有404页面

对于任何有兴趣的人:

您的默认域名直接映射到index.html,无需任何特定路径

同样/ waitlistview **不匹配/ waitlistview / Ahmedab​​ad / xyz路径通过GLOB匹配所以请在**之前斜杠

答案 1 :(得分:0)

添加

 "trailingSlash": false,

行前

  "cleanUrls": true

原因是“foodini.co.in/waitlistview”不匹配“/waitlistview/”,它会匹配“/waitlistview”。