【问题标题】:WordPress + CloudFront Flexible SSL ends up in redirect loop (https)WordPress + CloudFront 灵活 SSL 最终进入重定向循环 (https)
【发布时间】:2015-01-27 09:40:40
【问题描述】:

在 CloudFront 灵活 SSL 后面设置时通过 https 访问管理员时遇到问题。

通过 http 访问时,管理员工作正常,但一旦我更改为安全 https,它就会进入重定向循环。

我将以下行添加到wp-config.php 以在管理员中强制使用 SSL。

define('FORCE_SSL_ADMIN', true);

【问题讨论】:

标签: wordpress ssl cloudflare


【解决方案1】:

这是因为 CloudFlare 的灵活 SSL 作为反向代理运行并通过 http 连接到 WordPress 安装。 Wordpress 认为您通过http 连接并重定向到https 资源。浏览器从 CloudFlare 请求 https 资源,CloudFlare 再次通过 http 从 WordPress 服务器请求资源,导致另一个重定向。

幸运的是,有一个解决方案。 CloudFlare 发送一个 http 标头 X-FORWARDED-PROTO,它是从浏览器到 CloudFlare 服务器的连接中使用的协议。我们可以使用它来告诉 WordPress,即使请求是通过 http 发生的,浏览器的链接也超过了 https

wp-config.php 文件中添加以下行:

if ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') $_SERVER['HTTPS']='on';

上一行在下一行之前也很重要:

require_once(ABSPATH . 'wp-settings.php');

进行修改后,重定向循环将停止,您将能够再次使用管理员。

这最终适用于所有反向代理服务器,而不仅仅是 CloudFlare。

【讨论】:

  • 谢谢!对我来说最关键的部分是把它放在上面require_once(ABSPATH . 'wp-settings.php');
  • 在我的情况下,这并没有解决问题 - 然后我意识到我还需要使云端无效,因为它已经缓存了 301
【解决方案2】:

在我的情况下,我们遇到了这个问题,因为我配置的 CloudFront 源不正确。

cloudfront-> origin -> Origin Protocol Policy -> Match Viewer 

在此设置后我的网站工作正常

【讨论】:

    【解决方案3】:

    就我而言,另一个问题来源是(我知道听起来很傻)DefaultRootObject。

    我在我的 CloudFront 和 WordPress 上遇到了这个错误,这是我的太多重定向噩梦的问题。我发布这个是因为有人像我一样陷入了同样的愚蠢错误。

    干杯

    【讨论】:

      猜你喜欢
      • 2015-10-10
      • 2015-05-27
      • 2016-03-24
      • 2015-02-26
      • 1970-01-01
      • 2015-03-12
      • 2014-10-09
      • 2015-08-30
      • 2018-05-12
      相关资源
      最近更新 更多