如何为顶点(example.com)和子域(www.example.com)配置相同的来源 - aws Route53 和 CloudFront

Posted

技术标签:

【中文标题】如何为顶点(example.com)和子域(www.example.com)配置相同的来源 - aws Route53 和 CloudFront【英文标题】:How to configure same origin for apex (example.com) and subdomain (www.example.com) - aws Route53 and CloudFront 【发布时间】:2021-09-19 06:05:15 【问题描述】:

我可以使用 CNAME 或 route53 中的 A 记录将 www.example.com 重定向到 example.com,但问题是我在这两种情况下都想要单一来源(example.com),因为我的 api 只允许来源 example.com,所以如果我在浏览器中使用 www.example.com 我的 api 无法识别它并引发 cors 错误。

有没有什么方法可以这样配置,在这两种情况下,原始标头都保持不变(如果我使用www.example.com,则原始标头变为 example.com,这样我就不会收到 cors 错误)

【问题讨论】:

为什么设置allow-origins标头有问题? 我想避免验证 lambda 中允许的来源的逻辑,寻找更好的方法来实现这一点。 Allow origins header 只需要一个 * 通配符或单个 url Route 53 不像其他一些 DNS 服务那样支持重定向。因此,如果您不想使用允许来源响应标头“正确”执行此操作,我认为唯一的选择是 @jellycsc 指出的 Route53+S3。 【参考方案1】:

DNS 记录不是重定向。重定向意味着当用户访问www.example.com 时,返回一个301 状态码,其中Location 标头设置为域example.com 的URL。您可以使用S3 static website hosting with webpage redirect configured + CloudFront 来启用 HTTPS。

【讨论】:

以上是关于如何为顶点(example.com)和子域(www.example.com)配置相同的来源 - aws Route53 和 CloudFront的主要内容,如果未能解决你的问题,请参考以下文章

VirtualDocumentRoot 域和子域

如何为 httpd 服务器的 www 和非 www 域编写 SSL 虚拟主机?

如何为子域添加单独的谷歌分析

Apache2子域转到不同的文件夹

Javascript:重定向到不同的子域

Javascript:重定向到不同的子域