WordPress + CloudFront灵活SSL最终在重定向循环(https)

时间:2014-11-28 17:33:36

标签: wordpress ssl cloudflare

在CloudFront灵活SSL背后设置管理员时遇到问题。

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

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

define('FORCE_SSL_ADMIN', true);

3 个答案:

答案 0 :(得分:35)

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

幸运的是,这是一个解决方案。 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。

答案 1 :(得分:2)

在我的情况下,我们遇到此问题是因为我将CloudFront原点配置为错误。

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

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

答案 2 :(得分:0)

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

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

欢呼