【问题标题】:How to Configure hosting behavior in firebase.json to rewrite URL?如何在 firebase.json 中配置托管行为以重写 URL?
【发布时间】:2020-09-03 03:03:58
【问题描述】:

我正在开发一个网络应用程序并将所有文件托管在 Firebase 托管上。

我希望有人键入此 URL

mydomain.com/SomeUsername   //SomeUsername is URL Variable

它应该打开这个 URL

mydomain.com/user/index.html?user=SomeUsername   //SomeUsername is URL Variable

我试过了,但是不行,它重定向到 404 Page Not Found.

{
  "hosting": {
    "public": "public",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ],
    "rewrites": [ {
    "source": "/user/index.html?user=:SomeUsername*", 
    "destination": "mydomain.com/:SomeUsername*",
    "type": 301
  }]
  }
}

【问题讨论】:

  • 下面的答案对你有用吗@Jamshaid Alam?我的情况完全一样。
  • 不,我是这样做的
  • 你能写一个答案分享吗?因为我是一名新开发人员,这对我真的很有帮助:)
  • @AlexArdavin 我发布了答案。如果这对您有用,请投票。 :)

标签: javascript firebase redirect url-rewriting firebase-hosting


【解决方案1】:

尝试从重写中删除“类型”,因为这是重写,而不是重定向。另外,尝试通过将其更改为从目标中删除域名:

"mydomain.com/:SomeUsername*"

"/:SomeUsername*"

代码应该说:

 "rewrites": [ {
    "source": "/user/index.html?user=:SomeUsername*", 
    "destination": "/:SomeUsername*",

【讨论】:

    【解决方案2】:

    我找到了其他解决方案,当我输入 mydomain.com/SomeUsername 时,它会将我重定向到 404.html,这很明显该页面不可用。我编辑了 404.html 以重定向到实际页面。

    404.html

    <!DOCTYPE html>
    <html>
      <head>
      </head>
      <body>
        <script>
          const currentUrl = window.location.href;
          var a = document.createElement('a')
          a.setAttribute('href',currentUrl)
          var uname = a.pathname.replace('/','')
          window.location = "https://yourdomain/user/index.html?username="+uname;
        </script>
      </body>
    </html>
    

    在 user/index.html 页面中

    if(history.replaceState) history.replaceState({}, "", "/username"); 
    

    只是为了显示网址看起来像这样mydomain.com/username

    【讨论】:

      猜你喜欢
      • 2020-08-19
      • 2018-04-11
      • 1970-01-01
      • 1970-01-01
      • 2020-11-01
      • 2018-10-27
      • 2021-07-03
      • 2013-07-26
      • 1970-01-01
      相关资源
      最近更新 更多