我正在尝试将所有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://?
谢谢。
如果您的服务器上没有SSL证书,则必须将CloudFlare SSL设置为“灵活”。
根据他们的博客文章,您可以在.htaccess中设置以下内容:
RewriteCond %{HTTP:CF-Visitor} '"scheme":"http"'
RewriteRule ^(.*)$ https://www.domain.com/$1 [L]
您当前的设置会检查请求是否通过https到达您的服务器,但由于您没有证书,因此无法工作。CloudFlare将所有https请求转发到http,然后您的服务器重定向到https,依此类推。