wordpress 上的 Cloudfront SSL 问题。重定向过多

Phe*_*ons 3 dns wordpress ssl amazon-cloudfront

让我先解释一下我们的架构。

www.example.com CNAME 指向 cloudfront 分布(d3xxxxx.cloudfront.net)

cloudfront 的来源:route.example.com。我们选择 **Whitelist Headers ** 作为云前端分发中的主机

在 Cloudfront 上为域安装 SSL:www.example.com

route.domain.com 指向安装了 apache webserver 和 wordpress 的谷歌云服务器。

问题 1. 当我们在没有应用 SSL 证书的情况下点击 URL www.example.com 时,主页会加载 www.example.com,但是内部链接重定向到“route.example.com”而不是 www.example.com。我们相信这是因为 wordpress 上的 siteurl 使用 route.example.com

问题 2。在 cloudfront 上申请 SSL 证书后,当我们点击 URL ' https://www.example.com ' 时,该网站最终重定向过多

我们已经尝试了 URL“ WordPress + CloudFront 灵活 SSL 最终进入重定向循环 (https) ”,但它似乎对我们没有帮助。

目标:我们希望 www.example.com 将 Cloudfront 分发与 SSL 一起使用,并且不想将网络服务器暴露给最终用户。cloudfront 的来源应该是 route.example.com,它将有 wordpress 应用程序。

任何帮助,将不胜感激。

小智 12

我们遇到了类似的问题。在我们的例子中,虽然我们没有使用自定义域名,而是使用 CloudFront URL。

为了让 HTTPS 正常工作,我们必须做两件事:

  1. 确保CloudFront-Forwarded-Proto在所有缓存行为中转发标头,包括默认缓存行为。

  2. 将以下代码片段添加到wp-config.phpbefore require_once( ABSPATH . 'wp-settings.php' );

    if (isset($_SERVER['HTTP_CLOUDFRONT_FORWARDED_PROTO'])
      && $_SERVER['HTTP_CLOUDFRONT_FORWARDED_PROTO'] === 'https') {
      $_SERVER['HTTPS'] = 'on';
    }
    
    Run Code Online (Sandbox Code Playgroud)

代码片段本质上告诉 WordPress 我们在反向代理后面运行。这使它正确响应 HTTPS 请求。