Amazon-S3

使用 Route53 和 CloudFront 將頂點域重定向到 www

  • August 13, 2020

我正在嘗試使用 route53、cloudfront 和 s3設置從 apex 域example.com到的重定向。www.example.com

我在網上看到了很多關於這個主題的教程和討論,但還沒有對我有用。而且還不清楚在route53 中究竟要創建哪些記錄

目前我有,

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 記錄?.

兩個概念混在一起。DNS 中的ALIAS記錄只會影響example.com解析為 IP 地址的方式。您所做的與您所做的效果完全相同

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

它實際上不會重定向網路瀏覽器。重定向將由 Web 伺服器引起。

您在.htaccess文件的正確軌道上,但通常只有 Apache Web 伺服器處理.htaccess文件中的規則。S3 不是 Apache Web 伺服器,此連結表明.htaccess未處理 S3 上文件中的規則。

如果已處理,則問題中的規則會將訪問者從重定向 www.example.com example.com,而您的問題表明您想做相反的事情。因此www.,將RewriteCond移至RewriteRule行。同樣,如果 S3 沒有查看 中的規則.htaccess,那麼無論您放在那裡,都不會導致您的目標重定向。

您可能應該調查其他不使用的重定向方法.htaccess,例如此處描述的方法。或者,如果您需要更全面的規則處理,請使用功能更全面的 HTTP 伺服器而不是 S3。

引用自:https://serverfault.com/questions/1027390