0

我正在S3上使用CloudFront托管静态网站。使用S3/CloudFront将www重定向到非www而无需单独存储桶

现在,无论是www.example.comexample.com返回相同的,但我只想example.com工作,并www.example.com重定向到example.com

我知道我可以创造一个又一个水桶,将重定向到主桶(example.com),但后来我将有两个桶和每个网站2个CloudFront的分布,它会让一个烂摊子。

有没有另一种方法来实现这一目标?

回答

0

您似乎正在使用DNS服务,如您提到example.com
但是,我不知道您在做什么DNS服务。
由于路线53是常用的,因此根据路线53进行描述。
根据example.com描述域。

您可以以编程方式将example.com重定向编码为www.example.com。
但是,通常在AWS级别解决此问题。

需要两个存储桶才能在AWS级别解决问题。

  1. example.com(内容斗)

  2. www.example.com(桶重定向到example.com)
    S3 - >属性 - >静态网页寄存 - >重定向请求
    目标桶或域名:example.com
    协议:HTTP
    (无文件所需的桶。)

  3. 将example.com映射到Route 53上的A记录。

  4. 将www.example.com映射到Route 53的A记录。

然后,如果您要求www.example.com,您将被重定向到example.com。

如果您有任何问题,请随时询问!
谢谢。

更新1
如果您激活您的CloudFront的CNAME的example.com和www.example.com,
你可以得到example.com和www.example.com只用一个水桶请求。
但是,不建议这样做,因为URL的一致性不好。

+0

我知道你的方法,但正如我在问题中提到:“我知道我可以创造一个又一个水桶,将重定向到主桶(例如。com),但随后我将为每个网站分配两个存储桶和两个CloudFront分配,并且它会变得很糟糕。“ 我正在寻找一种不需要创建2个存储桶的方法.. – Theodore

+0

@Theodore拥有两个存储桶并不意味着您正在部署两个CloudFront。 仅为example.com存储桶创建部署 www.example.com存储桶是用于重定向到example.com域的存储桶。 –