Verzeihen Sie mir, wenn dies zuvor gefragt wurde, es gibt eine Reihe von Ressourcen, die dies berühren, aber nichts scheint für meinen spezifischen (https) Anwendungsfall zu passen.
Ich versuche, https://www.example.com auf https://example.com umzuleiten . Ebenso sollte dies für http://www.example.com bis https://example.com funktionieren .
Ich habe eine Cloudfront-Distribution mit dem Ursprung eines s3-Buckets eingerichtet, http zu https umgeleitet, den cname example.com hinzugefügt und mein Domain-Zertifikat hinzugefügt (das sowohl für die www-Subdomain als auch für die nackte Domain funktioniert).
Ich habe auch eine separate Distribution mit einem c-Namen für www.example.com eingerichtet, das Zertifikat hinzugefügt und den Ursprung in einem separaten s3-Bucket festgelegt, der in (statisches Website-Hosting) alle Anforderungen an https://example.com umleitet .
Die Umleitung funktioniert wie erwartet für http://example.com zu https://example.com , http (s): //www.example.com zu https://example.com jedoch nicht.
In Route 53 habe ich die Stammdomäne auf die erste Cloudfront-Distribution und www auf die zweite verteilt.
quelle
Antworten:
So hosten Sie eine Website auf AWS:
https://www.example.com, http://www.example.com und http://example.com leiten alle zu https://example.com weiter
du musst:
Erstellen Sie zwei S3-Buckets mit dem Namen example.com und www.example.com .
Aktivieren Sie das statische Website-Hosting für diese beiden Buckets.
Konfigurieren Sie die Umleitung im Bucket www.example.com zu: https://example.com . Wählen Sie in den Bucket-Eigenschaften Statisches Website-Hosting => Alle Anforderungen an einen anderen Hostnamen umleiten . In Ziel Eimer oder Domain - Feld geben Sie example.com , in Protokoll - Feld geben Sie https
Erstellen Sie für diese Buckets zwei CloudFront-Distributionen. Jede dieser Verteilungen zeigt auf den entsprechenden Bucket:
Geben Sie für den Origin-Domain-Namen Bucket-URLs an, die im Abschnitt Statisches Website-Hosting angegeben sind . Die URLs sollten die Form (oder eine ähnliche) haben: example.com.s3-website-us-west-1.amazonaws.com
Setzen Sie auf beiden Distributionen HTTP auf HTTPS- Umleitung.
VERWENDEN SIE KEINE VON AMAZON AUTOCOMPLETE EMPFOHLENE URL!
Stellen Sie NICHT das Standard-Stammobjekt- EIGENTUM ein!
Konfigurieren Sie DNS, indem Sie A-Einträge für www.example.com und example.com so einstellen, dass sie auf entsprechende CloudFront-Distributionen verweisen.
Warum funktioniert es? CloudFront bietet in beiden Fällen die Umleitung von HTTP zu HTTPS (mit und ohne www). Der Bucket für www.example.com bietet eine Weiterleitung zu example.com. Wenn Sie diese Distribution nicht hätten, könnte der Bucket die Anforderung für https://www.example.com nicht umleiten. S3 selbst unterstützt HTTPS für statisches Website-Hosting nicht.
quelle
Dank dieser Antwort habe ich die Lösung gefunden: Amazon S3 Redirect und Cloudfront
Zusamenfassend:
Cloudfront beachtet die in S3 eingerichteten Umleitungsregeln nicht, wenn der Ursprung nur die Bucket-ID ist. Stattdessen musste ich den Ursprung auf den angegebenen Hostnamen der statischen s3-Website setzen.
quelle