将所有请求重定向到https:// www symfony2 google HTTP负载均衡器

时间:2015-12-09 11:50:36

标签: symfony redirect https google-cloud-platform

我知道这个问题早已被问过很多次,但我尝试了所有的解决方案,没有一个不适合我。

我正在使用带谷歌云托管的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,从来没有遇到同样的问题。

2 个答案:

答案 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;
 }