使用 .htaccess 将 http 流量重定向到 https
Redirect http traffic to https using .htaccess
我正在尝试将所有 http 流量重定向到 https。我没有在我的服务器上安装 SSL 证书,并且正在使用 cloudflare 灵活的 SSL 选项。
以下代码工作文件
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.(.*)
RewriteRule ^.*$ https://%1/ [R=301,L]
但这会重定向 http://www.example.com to https://example.com
但是当我添加这个时
RewriteCond %{HTTP_HOST} ^(.*)
RewriteRule ^(.*)$ http://example.com/ [R=301,L]
重定向所有非 www 网址,例如 http://example.com to https://example.com
网站无法加载,并在浏览器上显示 重定向过多 错误。我该如何解决这个问题并将我所有的 http 流量重定向到 https://?
谢谢
如果您的服务器上没有 SSL 证书,您必须将 CloudFlare SSL 设置为 "flexible"。
根据他们的 blog post,您可以在 .htaccess 中设置以下内容:
RewriteCond %{HTTP:CF-Visitor} '"scheme":"http"'
RewriteRule ^(.*)$ https://www.domain.com/ [L]
您当前的设置会检查请求是否通过 https 到达您的 服务器,但由于您没有证书,所以无法正常工作。 CloudFlare 将所有 https 请求转发到 http,然后您的服务器重定向到 https,依此类推。
我正在尝试将所有 http 流量重定向到 https。我没有在我的服务器上安装 SSL 证书,并且正在使用 cloudflare 灵活的 SSL 选项。
以下代码工作文件
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.(.*)
RewriteRule ^.*$ https://%1/ [R=301,L]
但这会重定向 http://www.example.com to https://example.com
但是当我添加这个时
RewriteCond %{HTTP_HOST} ^(.*)
RewriteRule ^(.*)$ http://example.com/ [R=301,L]
重定向所有非 www 网址,例如 http://example.com to https://example.com
网站无法加载,并在浏览器上显示 重定向过多 错误。我该如何解决这个问题并将我所有的 http 流量重定向到 https://?
谢谢
如果您的服务器上没有 SSL 证书,您必须将 CloudFlare SSL 设置为 "flexible"。
根据他们的 blog post,您可以在 .htaccess 中设置以下内容:
RewriteCond %{HTTP:CF-Visitor} '"scheme":"http"'
RewriteRule ^(.*)$ https://www.domain.com/ [L]
您当前的设置会检查请求是否通过 https 到达您的 服务器,但由于您没有证书,所以无法正常工作。 CloudFlare 将所有 https 请求转发到 http,然后您的服务器重定向到 https,依此类推。