我知道这个问题早已被问过很多次,但我尝试了所有的解决方案,没有一个不适合我。
我正在使用带谷歌云托管的symfony2并使用他们的http负载均衡器。我的.htaccess
有以下代码
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example.com [nocase]
RewriteRule ^(.*) https://www.example.com/$1 [last,redirect=301]
我的负载均衡器有2个转发规则,一个用于http,另一个用于https。
现在,我可以将所有请求重定向到https://www.example.com,但我仍然无法将http://www.example.com重定向到HTTPS网址。
请让我知道我哪里弄错了,我之前使用的是AWS和rackspace,从来没有遇到同样的问题。
答案 0 :(得分:1)
尝试:
RewriteEngine On
#redirect http to https
RewriteCond %{HTTPS} ^off$
RewriteRule ^(.*) https://www.example.com/$1 [last,redirect=301]
#add www
RewriteCond %{HTTP_HOST} ^example.com$ [nocase]
RewriteRule ^(.*) https://www.example.com/$1 [last,redirect=301]
上述条件
RewriteCond %{HTTPS} ^off$
检查orignal方案是否为http,将其重定向为https。
答案 1 :(得分:1)
能够通过以下方法解决它,我知道它不是最好的方法,所以仍然会邀请建议。
我在app.php中添加了以下代码
if($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'http' && $_SERVER['HTTP_HOST'] == 'www.example.com') {
header("Location: https://www.example.com".$_SERVER['REQUEST_URI']);exit;
}