【问题标题】:Redirect www to non www in Route53 and CloudFront在 Route53 和 CloudFront 中将 www 重定向到非 www
【发布时间】:2021-11-27 00:28:33
【问题描述】:

我正在使用 CloudFront,并将 S3 作为源(存储桶不是公共的,未启用静态网站)。存储桶有一些随机名称。

我为 example.com 创建了一个 ACM 和 R53 主目录 + 为该域配置了 CloudFront,它适用于 https://example.com。

现在我想将https://www.example.com 重定向到https://example.com。 我将 www.example.com 作为域添加到 CloudFront(不确定是否需要),并从 www.example.com 到 example.com 创建了一个新的 R53 主条目(CNAME)。

现在 domain.com 和 www.example.com 都可以工作,但这不是我想要的。我希望 www.example.com 重定向到 example.com。我该如何解决?

【问题讨论】:

    标签: amazon-web-services amazon-s3 amazon-cloudfront amazon-route53 cname


    【解决方案1】:

    您可以使用 CloudFront 函数根据主机标头进行重定向。您可以在 CloudFront 控制台的 Functions 部分创建函数 - 这是一个示例:

    function handler(event) {
        var request = event.request;
        var host = request.headers.host.value;
    
        if (host === 'www.example.com') {    
            var response = {
                statusCode: 301,
                statusDescription: 'Moved Permanently',
                headers: { 
                    'location': { "value": `https://example.com${request.uri}` } 
                }
            };
    
            return response;
        }
    
        return request;
    }
    

    【讨论】:

      【解决方案2】:

      您需要两个不同的 CloudFront 分配。

      1. example.com -> s3 来源
      2. www.example.com -> s3 将存储桶(网站)重定向到 example.com

      【讨论】:

        猜你喜欢
        • 2018-06-06
        • 1970-01-01
        • 1970-01-01
        • 2018-09-26
        • 2017-03-10
        • 1970-01-01
        • 1970-01-01
        • 2019-03-09
        相关资源
        最近更新 更多