提问者:小点点

使用将http流量重定向到https。htaccess


我正在尝试将所有http流量重定向到https。我尚未在服务器上安装SSL证书,并且正在使用cloudflare灵活SSL选项。

以下代码工作文件

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

但这让http://www.example.com转向了https://example.com

但是当我添加这个

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

重定向所有非www网址,如http://example.com到https://example.com

网站没有加载,并给我一个错误,说浏览器上的重定向太多。如何修复此问题并将所有http流量重定向到https://?

谢谢。


共1个答案

匿名用户

如果您的服务器上没有SSL证书,则必须将CloudFlare SSL设置为“灵活”。

根据他们的博客文章,您可以在.htaccess中设置以下内容:

RewriteCond %{HTTP:CF-Visitor} '"scheme":"http"'
RewriteRule ^(.*)$ https://www.domain.com/$1 [L]

您当前的设置会检查请求是否通过https到达您的服务器,但由于您没有证书,因此无法工作。CloudFlare将所有https请求转发到http,然后您的服务器重定向到https,依此类推。