2015-02-23 30 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

相關問題