Ich habe eine Website, die auf Amazon S3 gehostet wird. Es ist die neue Version einer alten Website, die auf WordPress gehostet wird.
Ich habe einige Dateien mit den Metadaten eingerichtet Website Redirect Location
, um den alten Speicherort zu verarbeiten und sie auf die neuen Webseiten umzuleiten.
Zum Beispiel: Ich hatte das http://www.mysite.com/solution
, zu dem ich umleiten möchte. http://mysite.s3-website-us-east-1.amazonaws.com/product.html
Also habe ich eine leere Datei namens solution
in meinem Bucket mit den richtigen Metadaten erstellt:
Website Redirect Location
= /product.html
Die S3-Redirect-Metadaten entsprechen einer 301 Moved Permanently
, die sich hervorragend für SEO eignet. Dies funktioniert hervorragend, wenn Sie direkt über die S3-Domain auf die URL zugreifen.
Ich habe auch eine CloudFront-Distribution basierend auf dem Website-Bucket eingerichtet. Und wenn ich versuche, über meine Distribution darauf zuzugreifen, funktioniert die Umleitung nicht, dh:
http://xxxx123.cloudfront.net/solution
leitet nicht weiter, sondern lädt stattdessen die leere Datei herunter.
Meine Frage ist also, wie die Umleitung über die CloudFront-Distribution beibehalten werden kann. Oder eine Idee, wie man mit der Weiterleitung umgeht, ohne die SEO zu beeinträchtigen?
Vielen Dank
quelle
Analyse
Nach der dokumentierten Anfrage und Antwort Verhalten, und unterstützte HTTP - Statuscodes für Custom Origins , Amazon Cloudfront nicht folgen Redirects , leider:
Natürlich verwenden Sie Amazon S3 anstelle eines benutzerdefinierten Ursprungs, und ein verwandter Abschnitt fehlt insbesondere im Anforderungs- und Antwortverhalten für Amazon S3 Origins , da Amazon S3-Weiterleitungen erst vor kurzem hinzugefügt wurden (siehe Amazon S3 - Support für Websites) Redirects ), es könnte dort einfach noch fehlen.
Dementsprechend gehe ich davon aus, dass Sie keine leere Datei mit dem HTTP-Statuscode 200 OK erhalten , sondern einen HTTP-Status 301 Permanent ohne Text verschoben - haben Sie dies tatsächlich mit einem Browser oder eventuell nur mit einem Befehlszeilentool wie überprüft zB cURL oder HTTPie ? Die letzteren Tools erfordern normalerweise einen expliziten Parameter, um Weiterleitungen zu folgen, sodass dies leicht unbemerkt bleibt.
Mögliche Lösung
Wenn die Analyse korrekt ist, müssen Sie die Umleitung so konfigurieren, dass sie CloudFront explizit als Ziel hat. Weitere Informationen finden Sie unter Umleitungen :
quelle
HTTP/1.0 200 OK
Content-Type: application/octet-stream
Content-Length: 0
Ich verstehe, dass die Umleitung von S3 verwaltet wird. In diesem Fall wird die Datei von CloudFront gehostet, und es kümmert sich nicht um Umleitungsheader, die für S3 als S3 festgelegt wurden Ist der Webserver der Datei kann ich die Weiterleitung nur mit den Metadaten abbilden.