.htaccess删除GCP托管网站的www。

问题描述 投票:0回答:1

我有一个网站托管在GCP bucket上,我使用cloudflare的HTTPS.我如何使用.htaccess文件来删除所有网站页面的www.并将它们重定向到HTTPS?

基本上,我想。

http://www.example.com/ redirect to https://example.com/
https://www.example.com/ redirect to https://example.com/

and any other pages like
https://www.example.com/about.html or http://www.example.com/about.html redirect to https://example.com/about.html

我找到了.htaccess文件的配置,我需要添加到我的网站的根目录下。

Catch all and redirect www to no -www (HTTPS):

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.example.com$ [NC]
RewriteRule ^(.*)$ https://example.com$1 [R=301,L]

我把example.com换成了我的域名,把文件放到GCP bucket的根目录下,结果什么都没发生。如果我尝试通过以下方式访问我的网站 http:/example.com 我得到 DNS_PROBE_FINISHED_NXDOMAIN 错误。我尝试用ANSI和UTF-8保存.htaccess,结果一样。

我该怎么做。

  1. 从我的网站上用.htaccess删除www.
  2. 将用户重定向到https:/,而不是www.net。
  3. 我应该为.htaccess使用什么编码?这重要吗?

我的GCP bucket托管的静态网站和cloudflare提供的https:/是否可以这样做?

我试着通过我的域名注册商的控制面板设置重定向,但他们不支持用dns名称服务器重定向,除了他们自己的默认名称服务器。

.htaccess url no-www
1个回答
1
投票

最简单的解决方案是使用CloudFlare来处理HTTPS和www网站重定向。

要强制使用HTTPS,请进入CloudFlare设置。SSL/TLS => Edge Certificates => => Always Use HTTPS => On.

始终使用 HTTPS: 将所有使用 "http "方案的请求重定向为 "https"。这适用于对该区的所有 http 请求。

要将某些位置重定向到其他位置,您可以创建一个页面规则。请参见示例 https:/support.cloudflare.comhcen-usarticles200172286-Configuring-URL-forwarding-or-redirects-with-Cloudflare-Page-Rules。


0
投票

这里可能有更多的问题在起作用(我已经有一段时间没有使用Apache了),但是在你的条件的regex中的unescaped periods肯定会引起问题。试试这个。

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]
© www.soinside.com 2019 - 2024. All rights reserved.