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

redirect all request to https://www symfony2 google HTTP load balancer

我知道这个问题之前已经被问过很多次了,但我尝试了所有的解决方案,但 none 对我不起作用。

我将 symfony2 与 google 云托管一起使用,并使用他们的 http 负载平衡器。我的 .htaccess 有以下代码

RewriteEngine On
RewriteCond %{HTTP_HOST} ^example.com [nocase]
RewriteRule ^(.*) https://www.example.com/ [last,redirect=301]

我的负载均衡器有 2 条转发规则,一条用于 http,一条用于 https。

现在,我可以将所有请求重定向到 https://www.example.com, but I am still unable to redirect http://www.example.com 到 HTTPS url。

请让我知道哪里出错了,我之前使用的是 AWS 和 rackspace,但从未遇到过同样的问题。

尝试:

RewriteEngine On

#redirect http to https
RewriteCond %{HTTPS} ^off$
RewriteRule ^(.*) https://www.example.com/ [last,redirect=301]
#add www
RewriteCond %{HTTP_HOST} ^example.com$ [nocase]
RewriteRule ^(.*) https://www.example.com/ [last,redirect=301]

以上条件

RewriteCond %{HTTPS} ^off$

检查原始方案是否为http,将其重定向到https。

可以通过以下方法解决,我知道这不是最好的方法,所以仍然邀请建议。

我在 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;
 }