2015-02-23 51 views
32

请原谅我,如果之前已经问过这个问题,有很多资源涉及到这个问题,但似乎没有任何东西符合我的具体(https)用例。我想将https://www.example.com重定向到https://example.com。同样,这应该适用于http://www.example.comhttps://example.comCloudfront将万维网重定向到裸域与ssl

我已经建立了一个s3存储桶的起源,将http重定向到https,添加了cname example.com并添加了我的域证书(它适用于www子域以及裸域)。

我还为www.example.com设置了一个单独的发行版,其中添加了证书并将源设置为单独的s3存储桶,以便在(静态网站托管)中将所有请求重定向到https://example.com

重定向符合http://example.comhttps://example.com的预期,但是http://www.example.com到http://example.com没有。

在路由53中,我将根域别名为第一个cloudfront分布,而www别名为第二个。

+0

请在这里看到我的答案,这应该是非常有用的:http://stackoverflow.com/questions/36265027/how-to-forward-non-www-to-www-with-aws-amazon-cloud-front -behind-https-cloud-fro/41899321#41899321 – Marcel 2017-01-27 17:18:27

+0

而不是关闭这个问题,我们可以将它移动到服务器故障?我想添加一个答案。 – jtheletter 2018-02-23 21:17:12

回答

32

我找到了解决办法感谢这样的回答:Amazon S3 Redirect and Cloudfront

简而言之:

的Cloudfront不尊重在S3中的重定向规则设置,如果原产地是刚桶ID。相反,我不得不将原点设置为提供的s3静态网站主机名。

+6

非常感谢您发布您的答案。我用它来获取从裸域到www的HTTPS重定向,例如[https://example.com](https://example.com) - > [https://www.example.com](https://www.example.com)。 由于AWS UI自动完成标准S3主机名(bucketname.s3.amazonaws.com),您认为这将是正确的方式,所以此解决方案是违反直觉的,但对于此用例,静态网站托管端点(例如bucketname.s3-website-us-east-1.amazonaws.com)就是你需要的。 – kellen 2015-08-19 05:05:30

+3

您的CloudFront分配不**具有任何设置为**默认根对象**的功能也很重要,因为它会中断S3存储桶中的重定向。 – 2016-06-06 01:32:48

+0

您的链接指向一个问题。你打算链接哪个问题的答案? – jtheletter 2018-02-23 20:40:16

23

要托管网站上AWS使:

https://www.example.com,http://www.example.com和http://example.com 所有重定向到 HTTPS: //示例.com

您需要:

  1. 创建两个名为S3桶:example.comwww.example.com

  2. 打开静态网站托管在这两个桶上。

  3. 配置重定向斗www.example.com到:https://example.com。 在存储桶属性中选择静态网站存放 =>将所有请求重定向到另一个主机名。请记得提供的网址https://的前缀!

  4. 对于这些桶创建两个 CloudFront分配。每个这种分布的指向对应斗:

  5. 对于原产地域名提供斗网址静态网站托管部分提供。的URL应该具有形式(或类似):example.com.s3-website-us-west-1.amazonaws.com

    • 在这两个分布来设定HTTP到HTTPS重定向。

    • 请勿使用由AMAZON AUTOCOMPLETE建议的网址!

    • 请勿设置默认根目标对象 PROPERTY!

  6. 通过将www.example.com和example.com的A记录设置为指向相应的CloudFront分配来配置DNS。

它为什么会起作用?在两种情况下(无论是否使用www),CloudFront均提供从HTTP到HTTPS的重定向。 www.example.com的存储桶提供重定向到example.com。如果您没有此分配,那么存储桶将无法将请求重定向到https://www.example.com。 S3本身不支持静态网站托管的HTTPS。

+4

请勿在www-> naked CF发行版上将HTTP设置为HTTPS重定向,以避免不必要的重定向。您首先希望http://www.example.com直接访问https://example.com,而不是https://www.example.com。 – maletor 2017-05-08 18:22:58

+0

不要在53上为www设置A记录。使用CNAME。在根域上使用ALIAS作为A和AAAA记录。 – maletor 2017-05-08 18:23:36

+0

@maletor任何一个工作。 ALIAS + A记录不仅用于根域,它们用于将DNS条目指向CloudFront分配。 – ffxsam 2017-09-02 23:08:58

相关问题