【问题标题】:Redirecting http to https in Google Cloud在 Google Cloud 中将 http 重定向到 https
【发布时间】:2016-07-05 11:10:58
【问题描述】:

我已经设置了一个负载均衡器,它接受来自用户的 https 连接。然后使用 http 连接将计算引擎连接到负载均衡器。

我已经在根文件夹中编写了以下 .htaccess 文件:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

现在,问题是,计算引擎总是通过 http 链接(连接到负载均衡器)而不是 https。

因此,.htaccess 文件始终认为连接是 http 而不是 https,即使 url 以 https 开头。因此,即使 url 是 https,它也会无限循环尝试将用户发送到 https。

在这种情况下应该怎么做才能将http重定向到https。

谢谢。

【问题讨论】:

    标签: .htaccess google-compute-engine


    【解决方案1】:

    您应该检查 X-Forwarded-Proto http 标头。它由负载均衡器设置,值为 http 或 https。

    【讨论】:

    • .htacces 文件类似于:RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    • 嘿伦纳特。感谢您的帮助:)
    【解决方案2】:

    我花了很长时间才找到答案!非常感谢@Lennert!

    user@host-vm:/opt/bitnami/apps/wordpress/htdocs# head -4 /opt/bitnami/apps/wordpress/conf/htaccess.conf 重写引擎开启 RewriteCond %{HTTP:X-Forwarded-Proto} =http 重写规则。 https://%{HTTP:Host}%{REQUEST_URI} [L,R=永久]

    【讨论】:

    • 谢谢马克,这有帮助!
    • 谢谢,这也帮助我找到了代码。请注意它适用于 www。还有
    【解决方案3】:

    对于那些使用php 的人,我一直在寻找一种简单的方法来让我的项目将任何页面重定向到Google Cloud 中的https,我找到了一个简单的解决方案。您所要做的就是将此代码添加到您的php 页面的顶部。它必须在顶部,即标题中代码的 F̲i̲r̲s̲t̲ L̲i̲n̲e̲

    <?php
    if ($_SERVER['HTTPS'] == 'off') {
      header("Location: https://www.YOUR_SITE.com".$_SERVER['REQUEST_URI']);
      die();
    }
    ?>
    

    【讨论】:

      猜你喜欢
      • 2021-04-05
      • 2021-07-30
      • 2019-09-06
      • 1970-01-01
      • 2018-12-11
      • 2017-11-13
      • 1970-01-01
      • 1970-01-01
      • 2012-06-29
      相关资源
      最近更新 更多