(Optional) Konfigurieren einer Webseitenumleitung - Amazon Simple Storage Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

(Optional) Konfigurieren einer Webseitenumleitung

Wenn Ihr Amazon-S3-Bucket für das statische Website-Hosting konfiguriert ist, können Sie Umleitungsregeln für Ihren Bucket oder die darin enthaltenen Objekte konfigurieren. Sie haben die folgenden Optionen für die Konfigurierung einer Umleitung.

Umleiten von Anforderungen für den Website-Endpunkt Ihres Buckets an einen anderen Bucket oder eine andere Domäne

Sie können alle Anforderungen für einen Website-Endpunkt eines Buckets an einen anderen Host umleiten. Wenn Sie alle Anforderungen umleiten, werden alle Anforderungen an den Website-Endpunkt an den angegebenen Bucket oder die Domäne umgeleitet.

Wenn Ihre Root-Domäne zum Beispiel example.com ist, und Sie Anfragen sowohl für http://example.com, als auch für http://www.example.com bereitstellen möchten, müssen Sie zwei Buckets mit den Namen example.com und www.example.com erstellen. Pflegen Sie dann den Inhalt im Bucket example.com und konfigurieren Sie den anderen Bucket www.example.com so, dass alle Anforderungen an den Bucket example.com umgeleitet werden. Weitere Informationen finden Sie unter Konfigurieren einer statischen Website mit einem benutzerdefinierten Domänennamen.

So leiten Sie Anforderungen für einen Bucket-Website-Endpunkt um
  1. Öffnen Sie die Amazon S3 S3-Konsole unter https://console.aws.amazon.com/s3/.

  2. Wählen Sie unter Buckets den Namen des Buckets aus, von dem Sie Anfragen umleiten möchten (z. B. www.example.com).

  3. Wählen Sie Properties (Eigenschaften).

  4. Wählen Sie unter Static website hosting (Hosting statischer Websites) Edit (Bearbeiten) aus.

  5. Wählen Sie Redirect requests for an object (Anfragen für ein Objekt umleiten).

  6. Geben Sie im Feld Host name (Host-Name) den Website-Endpunkt für Ihren Bucket oder Ihre benutzerdefinierte Domäne ein.

    Wenn Sie Anforderungen beispielsweise zu einer Root-Domänenadresse umleiten, geben Sie ei example.com.

  7. Wählen Sie unter Protocol (Protokoll) das Protokoll für die umgeleiteten Anfragen (none (kein), http oder https).

    Wenn Sie kein Protokoll angeben, ist die Standardoption none (kein).

  8. Wählen Sie Save Changes (Änderungen speichern).

Konfigurieren von Umleitungsregeln für die Verwendung von fortschrittliche bedingten Umleitungen

Unter Verwendung fortschrittliche Umleitungsregeln können Sie bedingt Anfragen abhängig von bestimmten Objektschlüsselnamen oder Präfixen in der Anfrage weiterleiten, oder abhängig von Antwortcodes. Angenommen, Sie löschen ein Objekt in Ihrem Bucket oder benennen es um. Sie können eine Weiterleitungsregel hinzufügen, die die Anfrage an ein anderes Objekt weiterleitet. Wenn Sie einen Ordner nicht zur Verfügung stellen wollen, können Sie eine Umleitungsregel hinzufügen, um die Anfrage an eine andere Webseite umzuleiten. Sie können auch eine Weiterleitungsregel hinzufügen, um Fehlerbedingungen zu verarbeiten, indem Sie Anfragen, die den Fehler zurückgeben, an eine andere Domäne weiterleiten, wenn der Fehler verarbeitet wird.

Wenn Sie das statische Website-Hosting für Ihren Bucket aktivieren, können Sie optional fortschrittliche Umleitungsregeln angeben. Amazon S3 hat eine Begrenzung von 50 Routingregeln pro Websitekonfiguration. Wenn Sie mehr als 50 Routingregeln benötigen, können Sie die Objektumleitung verwenden. Weitere Informationen finden Sie unter Verwenden der S3-Konsole.

Weitere Informationen zur Konfiguration von Routing-Regeln mithilfe von finden Sie PutBucketWebsitein der Amazon Simple Storage Service API Reference. REST API

Wichtig

Um Umleitungsregeln in der neuen Amazon S3 S3-Konsole zu erstellen, müssen Sie verwendenJSON. JSONBeispiele finden Sie unterBeispiele für Umleitungsregeln.

So konfigurieren Sie Umleitungsregeln für eine statische Website

Gehen Sie folgendermaßen vor, um Umleitungsregeln für einen Bucket hinzuzufügen, für den das statische Website-Hosting bereits aktiviert ist.

  1. Öffnen Sie die Amazon S3 S3-Konsole unter https://console.aws.amazon.com/s3/.

  2. Wählen Sie in der Liste Buckets (Buckets) den Namen eines Buckets aus, den Sie als statische Website konfiguriert haben.

  3. Wählen Sie Properties (Eigenschaften).

  4. Wählen Sie unter Static website hosting (Hosting statischer Websites) Edit (Bearbeiten) aus.

  5. Geben Sie im Feld Umleitungsregeln Ihre Umleitungsregeln ein. JSON

    In der S3-Konsole beschreiben Sie die Regeln mithilfe von. JSON JSONBeispiele finden Sie unterBeispiele für Umleitungsregeln. Amazon S3 hat eine Begrenzung von 50 Routingregeln pro Websitekonfiguration.

  6. Wählen Sie Save Changes (Änderungen speichern).

Routingregel-Elemente

Im Folgenden finden Sie die allgemeine Syntax für die Definition der Routing-Regeln in einer Website-Konfiguration unter JSON und XML Um Umleitungsregeln in der neuen S3-Konsole zu konfigurieren, müssen Sie Folgendes verwendenJSON. JSONBeispiele finden Sie unterBeispiele für Umleitungsregeln.

JSON
[ { "Condition": { "HttpErrorCodeReturnedEquals": "string", "KeyPrefixEquals": "string" }, "Redirect": { "HostName": "string", "HttpRedirectCode": "string", "Protocol": "http"|"https", "ReplaceKeyPrefixWith": "string", "ReplaceKeyWith": "string" } } ] Note: Redirect must each have at least one child element. You can have either ReplaceKeyPrefix with or ReplaceKeyWith but not both.
XML
<RoutingRules> = <RoutingRules> <RoutingRule>...</RoutingRule> [<RoutingRule>...</RoutingRule> ...] </RoutingRules> <RoutingRule> = <RoutingRule> [ <Condition>...</Condition> ] <Redirect>...</Redirect> </RoutingRule> <Condition> = <Condition> [ <KeyPrefixEquals>...</KeyPrefixEquals> ] [ <HttpErrorCodeReturnedEquals>...</HttpErrorCodeReturnedEquals> ] </Condition> Note: <Condition> must have at least one child element. <Redirect> = <Redirect> [ <HostName>...</HostName> ] [ <Protocol>...</Protocol> ] [ <ReplaceKeyPrefixWith>...</ReplaceKeyPrefixWith> ] [ <ReplaceKeyWith>...</ReplaceKeyWith> ] [ <HttpRedirectCode>...</HttpRedirectCode> ] </Redirect> Note: <Redirect> must have at least one child element. You can have either ReplaceKeyPrefix with or ReplaceKeyWith but not both.

In der folgenden Tabelle werden die Elemente in der Weiterleitungsregel beschrieben.

Name Beschreibung
RoutingRules Container für eine Sammlung von RoutingRule-Elementen.
RoutingRule

Eine Regel, die eine Bedingung identifiziert, sowie die Weiterleitung, die angewendet wird, wenn die Bedingung erfüllt ist.

Bedingung:

  • Ein RoutingRules-Container muss mindestens eine Weiterleitungsregel enthalten.

Condition

Container für die Beschreibung einer Bedingung, die für die angegebene Weiterleitung erfüllt sein muss, damit sie angewendet wird. Wenn die Weiterleitungsregel keine Bedingung enthält, wird die Regel auf alle Anfragen angewendet.

KeyPrefixEquals

Das Präfix des Objektschlüsselnamens, von dem die Anfragen weitergeleitet werden.

KeyPrefixEquals ist erforderliche, wenn HttpErrorCodeReturnedEquals nicht angegeben ist. Wenn KeyPrefixEquals und HttpErrorCodeReturnedEquals angegeben sind, müssen beide true sein, damit die Bedingung erfüllt ist.

HttpErrorCodeReturnedEquals

Der HTTP Fehlercode, der übereinstimmen muss, damit die Umleitung angewendet wird. Wenn ein Fehler auftritt und der Fehlercode mit diesem Wert übereinstimmt, gilt die angegebene Weiterleitung.

HttpErrorCodeReturnedEquals ist erforderliche, wenn KeyPrefixEquals nicht angegeben ist. Wenn KeyPrefixEquals und HttpErrorCodeReturnedEquals angegeben sind, müssen beide true sein, damit die Bedingung erfüllt ist.

Redirect

Container-Element, das Anweisungen für die Weiterleitung der Anfrage enthält. Sie können Anfragen an einen anderen Host oder eine andere Seite umleiten, oder ein anderes Protokoll vorgeben. Eine RoutingRule muss ein Redirect-Element besitzen. Ein Redirect-Element muss mindestens eines der folgenden zugeordneten Elemente enthalten: Protocol, HostName, ReplaceKeyPrefixWith, ReplaceKeyWith oder HttpRedirectCode.

Protocol

Das Protokoll, http oder https, das im Location-Header verwendet werden soll, der in der Antwort zurückgegeben wird.

Wenn eines der zugeordneten Elemente vorhanden ist, ist Protocol nicht erforderlich.

HostName

Der Hostname, der im Location-Header verwendet werden soll, der in der Antwort zurückgegeben wird.

Wenn eines der zugeordneten Elemente vorhanden ist, ist HostName nicht erforderlich.

ReplaceKeyPrefixWith

Das Präfix des Objektschlüsselnamens, der den Wert von KeyPrefixEquals in der Umleitungsanforderung ersetzt.

Wenn eines der zugeordneten Elemente vorhanden ist, ist ReplaceKeyPrefixWith nicht erforderlich. Es kann nur bereitgestellt werden, wenn ReplaceKeyWith nicht bereitgestellt wird.

ReplaceKeyWith

Der Objektschlüssel, der im Location-Header verwendet werden soll und in der Antwort zurückgegeben wird.

Wenn eines der zugeordneten Elemente vorhanden ist, ist ReplaceKeyWith nicht erforderlich. Es kann nur bereitgestellt werden, wenn ReplaceKeyPrefixWith nicht bereitgestellt wird.

HttpRedirectCode

Der HTTP Umleitungscode, der in dem Location Header verwendet werden soll, der in der Antwort zurückgegeben wird.

Wenn eines der zugeordneten Elemente vorhanden ist, ist HttpRedirectCode nicht erforderlich.

Beispiele für Umleitungsregeln

Die folgenden Beispiele erklären häufige Weiterleitungsfälle:

Wichtig

Um Umleitungsregeln in der neuen Amazon S3 S3-Konsole zu erstellen, müssen Sie verwendenJSON.

Beispiel 1: Weiterleitung nach der Umbenennung eines Schlüsselpräfix

Angenommen, Ihr Bucket enthält die folgenden Objekte:

  • index.html

  • docs/article1.html

  • docs/article2.html

Jetzt wollen Sie den Ordner von docs/ in documents/ umbenennen. Nach dieser Änderung müssen Sie Anfragen für das Präfix docs/ in documents/ weiterleiten. Beispielsweise muss die Anfragen für docs/article1.html an documents/article1.html weitergeleitet werden.

In diesem Fall fügen Sie der Konfiguration der Website die folgende Routingregel hinzu.

JSON
[ { "Condition": { "KeyPrefixEquals": "docs/" }, "Redirect": { "ReplaceKeyPrefixWith": "documents/" } } ]
XML
<RoutingRules> <RoutingRule> <Condition> <KeyPrefixEquals>docs/</KeyPrefixEquals> </Condition> <Redirect> <ReplaceKeyPrefixWith>documents/</ReplaceKeyPrefixWith> </Redirect> </RoutingRule> </RoutingRules>
Beispiel 2: Weiterleitung von Anfragen für einen gelöschten Ordner auf eine Seite

Angenommen, Sie löschen den Ordner images/ (d. h. Sie löschen alle Objekte mit dem Schlüsselpräfix images/). Sie können eine Weiterleitungsregel einrichten, die Anfrage für jedes Objekt mit dem Schlüsselpräfix images/ auf eine Seite namens folderdeleted.html weiterleitet.

JSON
[ { "Condition": { "KeyPrefixEquals": "images/" }, "Redirect": { "ReplaceKeyWith": "folderdeleted.html" } } ]
XML
<RoutingRules> <RoutingRule> <Condition> <KeyPrefixEquals>images/</KeyPrefixEquals> </Condition> <Redirect> <ReplaceKeyWith>folderdeleted.html</ReplaceKeyWith> </Redirect> </RoutingRule> </RoutingRules>
Beispiel 3: Bei einem HTTP Fehler weiterleiten

Nehmen wir an, wenn ein angefordertes Objekt nicht gefunden wird, möchten Sie Anfragen an eine Amazon Elastic Compute Cloud (AmazonEC2) -Instance umleiten. Fügen Sie eine Umleitungsregel hinzu, sodass der Besucher der Website, wenn der HTTP Statuscode 404 (Not Found) zurückgegeben wird, zu einer EC2 Amazon-Instance weitergeleitet wird, die die Anfrage bearbeitet.

Im folgenden Beispiel wird auch das Objektschlüsselpräfix report-404/ in die Weiterleitung eingefügt. Wenn Sie beispielsweise eine Seite anfordern ExamplePage.html und dies zu einem HTTP 404-Fehler führt, wird die Anfrage auf eine Seite report-404/ExamplePage.html auf der angegebenen EC2 Amazon-Instance umgeleitet. Wenn es keine Routing-Regel gibt und der HTTP Fehler 404 auftritt, wird das in der Konfiguration angegebene Fehlerdokument zurückgegeben.

JSON
[ { "Condition": { "HttpErrorCodeReturnedEquals": "404" }, "Redirect": { "HostName": "ec2-11-22-333-44.compute-1.amazonaws.com", "ReplaceKeyPrefixWith": "report-404/" } } ]
XML
<RoutingRules> <RoutingRule> <Condition> <HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals > </Condition> <Redirect> <HostName>ec2-11-22-333-44.compute-1.amazonaws.com</HostName> <ReplaceKeyPrefixWith>report-404/</ReplaceKeyPrefixWith> </Redirect> </RoutingRule> </RoutingRules>

So leiten Sie Anforderungen für ein Objekt um

Sie können Anfragen für ein Objekt an ein anderes Objekt umleiten oder URL indem Sie den Ort der Website-Weiterleitung in den Metadaten des Objekts festlegen. Sie richten die Umleitung ein, indem Sie den Objekt-Metadaten die x-amz-website-redirect-location-Eigenschaft hinzufügen. In der Amazon-S3-Konsole legen Sie den Wert für Website Redirect Location (Websiteumleitungsort) in den Metadaten des Objekts fest. Wenn Sie Amazon S3 verwendenAPI, legen Sie festx-amz-website-redirect-location. Die Website interpretiert anschließend das Objekt als eine 301-Umleitung.

Um eine Anfrage an ein anderes Objekt umzuleiten, richten Sie den Umleitungsstandort auf den Schlüssel für das Zielobjekt ein. Um eine Anfrage an eine externe Adresse weiterzuleitenURL, legen Sie den Umleitungsort auf den gewünschten Wert URL fest. Weitere Informationen zu Objekt-Metadaten erhalten Sie unter Systemdefinierte Objektmetadaten.

Wenn Sie eine Seitenumleitung einrichten, können Sie den Inhalt des Quellobjekts beibehalten oder löschen. Wenn es in Ihrem Bucket beispielsweise das Objekt page1.html gibt, können Sie alle Anforderungen für diese Seite an ein anderes Objekt umleiten, page2.html. Sie haben hierfür zwei Möglichkeiten:

  • Behalten Sie den Inhalt des Objekts page1.html und leiten Sie Seitenanforderungen um.

  • Löschen Sie den Inhalt von page1.html und laden Sie ein Null-Byte-Objekt mit dem Namen page1.html hoch, um das vorhandene Objekt zu ersetzen und Seitenanforderungen umzuleiten.

  1. Öffnen Sie die Amazon S3 S3-Konsole unter https://console.aws.amazon.com/s3/.

  2. Wählen Sie in der Liste Buckets den Namen des Buckets aus, den Sie als statische Website konfiguriert haben (z. B. example.com).

  3. Wählen Sie unter Objects (Objekte) Ihr Objekt aus.

  4. Wählen Sie Actions (Aktionen) und dann Edit metadata (Metadaten bearbeiten).

  5. Wählen Sie Metadata (Metadaten) aus.

  6. Wählen Sie Add Metadata (Metadaten hinzufügen) aus.

  7. Wählen Sie unter Type (Typ) die Option System Defined (Systemdefiniert) aus.

  8. Wählen Sie unter Key die Option x-amz-website-redirect-location aus.

  9. Geben Sie in Value (Wert) den Schlüsselnamen des Objekts ein, zu dem Sie umleiten möchten, z. B. /page2.html.

    Für ein anderes Objekt im selben Bucket ist das Präfix / im Wert erforderlich. Sie können den Wert auch auf einen externen Wert setzenURL, http://www.example.com z. B.

  10. Wählen Sie Metadaten bearbeiten.

Die folgenden Amazon S3 API S3-Aktionen unterstützen den x-amz-website-redirect-location Header in der Anfrage. Amazon S3 speichert den Header-Wert in den Objekt-Metadaten als x-amz-website-redirect-location.

Ein für das Hosting von Websites konfigurierter Bucket hat sowohl den Website-Endpunkt als auch den REST Endpunkt. Eine Anfrage für eine Seite, die als 301-Umleitung konfiguriert ist, erzeugt die folgenden möglichen Ergebnisse, abhängig vom Endpunkt der Anfrage:

  • Regionsspezifischer Website-Endpunkt – Amazon S3 leitet die Seitenanforderung in Übereinstimmung mit dem Wert der x-amz-website-redirect-location-Eigenschaft um.

  • RESTEndpunkt — Amazon S3 leitet die Seitenanfrage nicht weiter. Es gibt das angefragte Objekt zurück.

Weitere Informationen zu den Endpunkten finden Sie unter Hauptunterschiede zwischen einem Website-Endpunkt und einem REST API Endpunkt.

Wenn Sie eine Seitenumleitung einrichten, können Sie den Inhalt des Objekts beibehalten oder löschen. Nehmen wir z. B. an, dass Sie ein page1.html-Objekt in Ihrem Bucket haben.

  • Um den Inhalt von Seitenanfragen beizubehalten page1.html und nur Seitenanfragen umzuleiten, können Sie eine PUTObject-Copy-Anfrage einreichen, um ein neues page1.html Objekt zu erstellen, das das bestehende page1.html Objekt als Quelle verwendet. In Ihrer Anfrage richten Sie den x-amz-website-redirect-location-Header ein. Nachdem die Anforderung abgeschlossen ist, ist die Originalseite mit ihrem Inhalt unverändert, aber Amazon S3 leitet alle Anforderungen für die Seite an den von Ihnen angegebenen Umleitungsstandort um.

  • Um den Inhalt des page1.html Objekts zu löschen und Anfragen für die Seite umzuleiten, können Sie eine PUT Objektanforderung senden, um ein Null-Byte-Objekt hochzuladen, das denselben Objektschlüssel hat:. page1.html In der PUT Anfrage legen Sie x-amz-website-redirect-location für das neue page1.html Objekt fest. Nachdem die Anfrage abgeschlossen ist, hat page1.html keinen Inhalt mehr, und Anfragen werden an den Standort umgeleitet, der in x-amz-website-redirect-location angegeben ist.

Wenn Sie das Objekt mithilfe der GETObjekt-Aktion zusammen mit anderen Objektmetadaten abrufen, gibt Amazon S3 den x-amz-website-redirect-location Header in der Antwort zurück.