【问题标题】:redirect all request to https://www symfony2 google HTTP load balancer将所有请求重定向到 https://www symfony2 google HTTP 负载平衡器
【发布时间】:2016-03-14 16:29:23
【问题描述】:

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

我将 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,但从未遇到过同样的问题。

【问题讨论】:

    标签: symfony redirect https google-cloud-platform


    【解决方案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;
     }
    

    【讨论】:

      【解决方案2】:

      试试:

      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$
      

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

      【讨论】:

      • 对不起,还是一样
      • 301 是永久重定向,浏览器会永远记住它,所以你需要清除浏览器缓存。
      • 我做到了,还是一样:(
      猜你喜欢
      • 2016-09-13
      • 1970-01-01
      • 2017-04-18
      • 2015-02-25
      • 1970-01-01
      • 2015-04-20
      • 1970-01-01
      • 2014-06-18
      • 1970-01-01
      相关资源
      最近更新 更多