WordPress + CloudFront Flexible SSL 最终进入重定向循环 (https)

标签 wordpress ssl cloudflare

在 CloudFront Flexible SSL 背后设置时,通过 https 访问管理员时遇到问题。

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

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

define('FORCE_SSL_ADMIN', true);

最佳答案

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

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

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

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

同样重要的是,上面一行出现在下面一行之前:

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

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

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

关于WordPress + CloudFront Flexible SSL 最终进入重定向循环 (https),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27193575/

相关文章:

php - 在同一页面上两次简码 WordPress

javascript - 使用 Fetch 的 WordPress REST API 身份验证

java - 连接到 Notes 中的 LDAP 服务器的 SSLHandshakeException

ssl - javax.net.ssl.SSLHandshakeException : handshake_failure when using JMeter with SSL (JDK8)

php - 使用 PHP 在 WordPress 中设置页面标题

Wordpress,替换标准词/搜索

c# - 在服务器应用程序中使用带有 SslStream 和 X509Certificate2 的中间证书

html - CloudFlare 或 CDN 通常如何工作,我可以强制他们获取我更新的静态内容吗?

docker - 试图弄清楚如何为Docker容器化此可执行文件

cloudflare - Traefik : Auto-add subdomains to cloudflare DNS