如何在Firebase托管网页移除.php后缀 及rewrite规则配置问题
问题1:rewrite多规则合并写法说明
Firebase Hosting 的 rewrites.source 字段不支持逗号拼接多个匹配规则,你当前的合并写法不会生效,必须拆成两条独立的rewrite配置项。
问题2:无.php后缀访问失效的解决方法
Firebase 自带的 cleanUrls 配置仅支持自动去除 .html 后缀,不会处理 .php 后缀的文件,因此需要额外添加对应重写规则,匹配不带后缀的路径,优先查找对应.php文件返回。
修改后的完整firebase.json配置如下:
{ "hosting": { "cleanUrls": true, "trailingSlash": true, "headers": [ { "source": "*.php", "headers": [ { "key": "Content-Type", "value": "text/html" } ] } ], "appAssociation": "AUTO", "public": "public", "rewrites": [ // 处理无.php后缀的路径匹配 { "source": "**/:file([^.]+)", "destination": "/:file.php" }, // 排除静态资源的动态链接规则 { "source": "**/!(*.css|*.js|*.map|*.jpg|*.gif|*.png|*.php)", "dynamicLinks": true }, // post路径下的动态链接规则 { "source": "/post/**", "dynamicLinks": true } ] } }
注意:rewrite规则按从上到下的优先级匹配,需要将.php后缀的重写规则放在最前面,避免被后续的动态链接规则拦截。
内容的提问来源于stack exchange,提问作者micha
相关产品推荐
相关产品推荐

