有没有办法从 GCP 应用程序负载均衡器上运行的网站上的网页中去除 .html 扩展名?
通常是这样的:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.html [NC,L]
应该可以解决问题。
但我看不出如何在高级主机和路径规则中使用类似的东西作为重写模式,这是唯一可能的选择。
如果是 App Engine,则不会有问题,您可以直接在 app.yaml 文件中配置 URL 重写。或者是一个后端服务器,您可以使用上面的规则进行修改,以便在提供内容之前自动重写 URL。
我可能遗漏了一些东西,非常感谢您的帮助。
谢谢
在重写模式下使用高级主机和路径规则,可以使用两种可能的解决方案从在 GCP Application Load Balancer 上运行的网站上的网页中剥离 HTML 扩展名:
解决方案1:URL 重写 允许您以与服务使用的内部 URL 不同的格式向外部用户显示 URL,从而提供一种不仅仅是缩短 URL 的自定义形式。
首先,创建 URL 映射并将其附加到负载均衡器。之后,所有与您指定的主机和路径规则匹配的请求都将被重写以删除“.html”扩展名。要设置URL重写,需要更改主机和路径规则,请查看此官方文档以配置URL重写。
解决方案2:在存储桶的 GCP Console 中,找到“example.html”文件并按照以下步骤操作:
单击文件列表右端的三个点。
选择“重命名”选项并将文件名更改为“example”。
再次单击三个点,然后选择“编辑元数据”。
在表单中,找到‘content-type’字段并输入‘text/html’。
保存更改。
现在该文件应该在没有 .html 扩展名的情况下提供。