Falls das Website-Hosting für den Bucket aktiviert ist, gibt es eine alternative Möglichkeit, eine 301-Weiterleitung hinzuzufügen. Demnach werden die Umleitungsregeln auf Bucket-Ebene im XML-Format beschrieben und können in den Bucket-Eigenschaften über die AWS S3 Console (Abschnitt Static Website Hosting) angegeben werden. Eine vollständige Dokumentation der Syntax finden Sie derzeit unter aquí .
Dieser Ansatz ist praktisch, wenn Sie massive URL-Bewegungen haben, da es einfacher ist, alle Umleitungen an einer Stelle zu verwalten. Zum Beispiel ist es möglich, Umleitungsregeln zu definieren
<RoutingRule>
<Condition>
<KeyPrefixEquals>index.php</KeyPrefixEquals>
</Condition>
<Redirect>
<ReplaceKeyWith>index.html</ReplaceKeyWith>
</Redirect>
</RoutingRule>
<RoutingRule>
<Condition>
<KeyPrefixEquals>blog.php?id=21</KeyPrefixEquals>
</Condition>
<Redirect>
<ReplaceKeyWith>mysql-utf-8-database-creation-snippet.html</ReplaceKeyWith>
</Redirect>
</RoutingRule>
Es sieht so aus, als ob es dasselbe ist wie die Erstellung gefälschter Objekte und die Angabe von x-amz-website-redirect-location-Metadaten für diese. Die schlechte Nachricht ist, dass es nicht mehr als 50 solcher Regeln in XML für einen Bucket geben kann. Und ja, es ist nicht bequem, XML zu verwalten. Aber für mich ist dieser Weg im Moment einfacher. Wiederum, weil es einfacher ist, alle Dateien an einem Ort zu verwalten.
Dieser XML-Ansatz ist äußerst nützlich, wenn Sie z. B. ein Verzeichnis mit vielen Seiten umbenannt haben. In diesem Fall ist es notwendig, die eine einzige Umleitungsregel für das Verzeichnis zu erstellen, anstatt eine separate Regel für jede Seite darin. Zum Beispiel
<RoutingRule>
<Condition>
<KeyPrefixEquals>blog/</KeyPrefixEquals>
</Condition>
<Redirect>
<ReplaceKeyPrefixWith>it-blog/</ReplaceKeyPrefixWith>
</Redirect>
</RoutingRule>
Diese Regel besagt example.com/blog/whatever
wird umgeleitet zu example.com/it-blog/whatever
.
Ein weiteres nützliches Merkmal eines solchen Ansatzes ist, dass nur Präfixe ersetzt werden. Genauso wie bei Verzeichnissen ist es möglich Seite umzuleiten, aber Abfrageparameter zu speichern. Es könnte geeignet sein, wenn es einige JS-Verarbeitung dieser Abfrageparameter gibt Parameter gibt. Mit x-amz-website-redirect-location-Metadaten werden sie wahrscheinlich verloren gehen.
Wie bereits erwähnt, kann das Schreiben und Lesen von XML lästig sein. Um dies zu vermeiden, schrieb ich ein einfaches Online-Tool in GWT zu einfachen Text mit alten und neuen URLs in das XML-Format zu konvertieren. Es verwendet die KeyPrefixEquals
Prädikat und Ausführung ReplaceKeyPrefixWith
umleiten.
Schließlich, so die Dokumentation , Wenn das Website-Hosting deaktiviert ist, ist die Umleitungsunterstützung für diesen Bucket nicht anwendbar.