Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess使用GCP托管站点删除www_.htaccess_Url - Fatal编程技术网

.htaccess使用GCP托管站点删除www

.htaccess使用GCP托管站点删除www,.htaccess,url,.htaccess,Url,我有一个网站托管在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.exa

我有一个网站托管在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文件的配置:

捕获所有内容并将www重定向到无www(HTTPS):

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.example.com$ [NC]
RewriteRule ^(.*)$ https://example.com$1 [R=301,L]
我用我的域名替换了example.com,将文件放入我的GCP bucket的根目录中,什么也没发生。如果我试图通过访问我的网站,我会得到
DNS\u PROBE\u FINISHED\u NXDOMAIN
错误。我尝试用ANSI和UTF-8保存.htaccess,结果相同

我如何:

  • 使用.htaccess从我的网站中删除www
  • 将用户重定向到https://而不使用www
  • 我应该为.htaccess使用什么编码?这有关系吗
  • 我的GCP bucket托管的静态网站和cloudflare提供的https://是否可能实现这一点


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

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

    要强制使用HTTPS,请转到CloudFlare设置:
    SSL/TLS
    =>
    边缘证书
    =>
    始终在
    上使用HTTPS=>

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


    要将某些位置重定向到其他位置,可以创建页面规则。参见示例

    这里可能会有进一步的问题(我已经有一段时间没有处理Apache了),但是您的正则表达式中针对该条件的未替换周期肯定会导致问题。试试这个:

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

    当我添加一个页面规则“mydomain.com到www.mydomain.com”或“www.mydomain.com到”mydomain.com“时,它似乎不起作用。mydomain.com不可用,我想这是因为CNAME指向www.mydomain.com。