Ich versuche, etwas zu tun, das relativ einfach sein sollte - ich möchte einige Domains und Subdomains einrichten, um zur Kerndomain für unsere Site umzuleiten, aber ich möchte die Weiterleitungen auf Cloudfront veröffentlichen. Alles funktioniert, außer dass der Stammpfad umgeleitet wird. Dadurch erhalte ich eine XML-Datei, die den S3-Bucket teilweise beschreibt.
Hintergrund
S3
Mit S3 können Sie einen All-Redirect-Bucket einrichten , z.
Wenn Sie dies testen, macht der Web-Endpunkt (brass9-com.s3-website-us-west-1.amazonaws.com) das, was er sollte - er leitet zu brass9.com weiter. Gut.
Cloudfront
Mit Cloudfront können Sie auf einen S3-Bucket zeigen, aber die Art und Weise, wie dies vorgeschlagen wird, ist falsch. Anstatt wie brass9-com.s3.amazonaws.com auf den Bucket mit seinem Namen zu zeigen, müssen Sie den obigen Web-Endpunkt verwenden . Ansonsten können Sie alles auf den Standardeinstellungen belassen und ein gutes Umleitungsverhalten erzielen. Ein Pfad wie www.brass9.com/portfolio leitet also ordnungsgemäß dorthin weiter , wo er sollte. Auch gut.
Das Problem - die Root-Domain-Umleitung
Das einzige, was dann nicht funktioniert, ist die Umleitung von einfach www.brass9.com . Anstatt eine Weiterleitung zu erhalten, erhalten Sie dieses seltsame Ergebnis:
<?xml version="1.0" encoding="UTF-8"?>
<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Name>brass9-com</Name><Prefix></Prefix>
<Marker></Marker><MaxKeys>1000</MaxKeys><IsTruncated>false</IsTruncated>
</ListBucketResult>
OK... . So ist dies nicht ganz unerwartet - weil es kein Standard - Root - Objekt ist. Aber welches Standardstammobjekt würde ich möglicherweise angeben, um dieses Verhalten zu verhindern? Wie heißt das S3-Umleitungsobjekt, auf das ich verweisen muss? Oder gibt es eine andere richtige Konfiguration oder ist dies nur ein Fehler in der Interaktion zwischen Cloudfront und S3, den Amazon beheben muss?
Bekannte nicht funktionierende Lösung: Standardstammobjekt
Es ist möglich, ein Standardstammobjekt von index.html anzugeben, aber es hilft keinem - es ändert nur das Problem. Die Cloudfront-URL leitet stattdessen zu /index.html auf der Hauptwebsite um, bei der es sich um eine 404 handelt (wir verwenden keine index.html-Datei, sondern eine serverseitige Framework-gesteuerte Site). Ich könnte eine index.html auf den Server stellen, aber das macht den geringen Geschwindigkeitsgewinn der Verwendung von Cloudfront zunichte.
Ähnliche Fragen
Eine Frage stellt etwas Ähnliches, gibt jedoch aus irgendeinem Grund eine leere 0-Byte-Antwort zurück, anstatt eine XML-Antwort. Es enthält keine Frage zu diesem Problem oder eine Lösung.
Zum Thema passende Artikel
In einem Artikel wird vorgeschlagen, dass Sie nur die gesamte Website sowohl auf der Bare- als auch auf der WWW-Domain bereitstellen . Dies passt zu den Lesezeichen eines Benutzers, Ihrem Suchranking usw. Sie sollten dies nicht tun.
Einige diskutieren das Hosten einer statischen Website auf S3 und Cloudfront anstelle eines Umleitungsschemas und sind daher nicht miteinander verbunden.
Wie mache ich das richtig?
Screenshot der Cloudfront-Konfiguration - kein Standardstammobjekt, das auf den S3-Ursprung zeigt. InProgress ignorieren - Ich hatte gerade das Standardstammobjekt zum Testen ein- und ausgeschaltet.
Und die Origin-Konfiguration für diese Distribution:
GET /
bevor Sie Ihre Konfiguration für die Verwendung des Webendpunkts korrigiert haben.