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

时间:2019-03-06 13:33:44

标签: wordpress ssl dns amazon-cloudfront

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

www.example.com CNAME指向云端发布(d3xxxxx.cloudfront.net)

Cloudfront的来源:route.example.com。我们选择了**白名单标题 **作为Cloudfront发行中的HOST

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

route.domain.com指向安装了apache网络服务器和wordpress的Google云服务器。

问题 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'时,该网站结束了太多的重定向

我们尝试使用网址“ WordPress + CloudFront Flexible SSL ends up in redirect loop (https)”,但似乎并没有帮助我们。

目标: 我们希望www.example.com与SSL一起使用Cloudfront分发,并且不希望向最终用户公开Web服务器。 Cloudfront的来源应该是具有wordpress应用程序的route.example.com。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

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

要使HTTPS正常工作,我们必须做两件事:

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

  2. wp-config.php之前的require_once( ABSPATH . 'wp-settings.php' );中添加以下代码段:

    if (isset($_SERVER['HTTP_CLOUDFRONT_FORWARDED_PROTO'])
      && $_SERVER['HTTP_CLOUDFRONT_FORWARDED_PROTO'] === 'https') {
      $_SERVER['HTTPS'] = 'on';
    }
    

该代码段实质上告诉WordPress,我们在反向代理后面运行。这样可以正确响应HTTPS请求。