使用 Route53 和 CloudFront 将 apex 域重定向到 www

使用 Route53 和 CloudFront 将 apex 域重定向到 www

我正在尝试设置从 apex 域example.comwww.example.comroute53、cloudfront 和 s3 的重定向。

我在网上看过很多关于这个话题的教程和讨论,但对我来说都没有什么用。而且我也不清楚到底要创建什么记录在路线53中。

目前我有,

ALIAS    A    example.com    www.example.com

ALIAS    A    www.example.com    abcdefg.cloudfront.net

根据此设置中的建议视频教程以及其他许多人。

这不起作用所以我还尝试添加.htaccess以下内容

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]

但这也没用。

很多人还建议使用 CNAME 记录,但在我看来,这显然行不通,并在此答案中提到为什么不能在域名的顶点(又称根)使用 CNAME 记录?

答案1

两个概念混在一起了。DNSALIAS中的记录只会影响如何example.com解析 IP 地址。你所做的与

ALIAS    A    example.com        abcdefg.cloudfront.net
ALIAS    A    www.example.com    abcdefg.cloudfront.net

它实际上不会重定向 Web 浏览器。重定向将由 Web 服务器引起。

您对文件的理解是正确的.htaccess,但通常只有 Apache Web 服务器才能处理文件中的规则.htaccess。S3 不是 Apache Web 服务器,并且此链接表明.htaccessS3 上的文件中的规则未被处理。

如果已处理,则问题中的规则将重定向访问者 www.example.com example.com,而您的问题表明您想要做相反的事情。因此,将www.RewriteCond移到 行RewriteRule。同样,如果 S3 没有查看 中的规则.htaccess,那么无论您在那里放置什么都不会导致您想要的重定向。

您可能应该研究其他不使用的重定向方法.htaccess,例如此处描述的方法或者如果您需要更全面的规则处理,请使用功能更齐全的 HTTP 服务器而不是 S3。

相关内容