如何在 firebase 托管网页上删除 .php 扩展名?

How to remove .php extension on firebase hosted webpage?

我在使用 firebase 托管的网页上重写 url 时遇到问题。 这就是我的 firebase.json 的样子。



{
  "hosting": {
    "cleanUrls": true,
    "trailingSlash": true,
    "headers": [ {
      "source": "*.php",
      "headers": [ {
        "key": "Content-Type",
        "value": "text/html"
      } ]
    } ],
    "appAssociation": "AUTO",
    "public": "public",
    "rewrites": [
      {
        "source": "**/!(*.css|*.js|*.map|*.jpg|*.gif|*.png|*.php),/post/**",

        "dynamicLinks": true
       
      }
    ]

  }
}

到目前为止一切顺利。我遇到的问题不起作用。 例如,当我的网页托管在 https://google.com

上时

我的联系方式内页目前在https://google.com/contact.php

这个可以,但那个不行 https://google.com/contact 但这就是我想要的。另外,也许您可​​以通过给出 2 条重写规则来检查我是否正确,第一个是

"**/!(*.css|*.js|*.map|*.jpg|*.gif|*.png|*.php)",

第二个是这个

/post/**

我可以一起写吗?还是我应该为

做一个自己的重写标签
/post/**

Firebase 托管提供的最接近的选项是您已经设置的 "cleanUrls": true 选项。但这只会删除 .html 扩展名。这是设计使然,因为 .html 文件通常作为静态内容提供,其完整 URL 显示在浏览器中。

Firebase 托管不会以任何方式解释 PHP 代码,因此它很可能将您的 PHP 代码作为纯文本提供给您的网站访问者。如果您的文件中没有 PHP 代码,请将它们重命名为 .html,此时 "cleanUrls": true 选项将删除扩展名。