在 Route53 和 CloudFront 中将 www 重定向到非 www

Den*_*boy 1 cname amazon-s3 amazon-web-services amazon-cloudfront amazon-route53

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

我已经为 example.com 创建了 ACM 和 R53 主树 + 为此域配置了 CloudFront,它在https://example.com上运行良好上运行良好。

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

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

Cri*_*ian 6

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

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;
}
Run Code Online (Sandbox Code Playgroud)