(Facultatif) Configuration de la redirection de pages web - Amazon Simple Storage Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

(Facultatif) Configuration de la redirection de pages web

Si votre compartiment Amazon S3 est configuré pour l'hébergement de site web statique, vous pouvez configurer des redirections pour votre compartiment ou les objets qu'il contient. Vous disposez des options suivantes pour configurer des redirections.

Rediriger les demandes pour le point de terminaison de site web de votre compartiment vers un autre compartiment ou domaine

Vous pouvez rediriger toutes les demandes d'un point de terminaison de site web pour un compartiment vers un autre compartiment ou domaine. Si vous redirigez toutes les demandes, chaque demande adressée au point de terminaison de site web est redirigée vers le compartiment ou le domaine spécifié.

Par exemple, si votre domaine racine est example.com, et que vous souhaitez gérer des demandes pour http://example.com et http://www.example.com, vous devez créer deux compartiments nommés example.com et www.example.com. Ensuite, gérez le contenu dans le compartiment example.com et configurez l'autre compartiment www.example.com de manière à rediriger toutes les demandes vers le compartiment example.com. Pour plus d’informations, consultez les informations relatives à la configuration d’un site Web statique à l’aide d’un nom de domaine personnalisé.

Pour rediriger des demandes pour un point de terminaison de site Web de compartiment
  1. Ouvrez la console Amazon S3 à l'adresse https://console.aws.amazon.com/s3/.

  2. Sous Buckets (Compartiments), choisissez le nom du compartiment à partir duquel vous souhaitez rediriger les demandes (par exemple, www.example.com).

  3. Choisissez Propriétés.

  4. Sous Static website hosting (Hébergement de site web statique), choisissez Edit (Modifier).

  5. Choisissez Redirect requests for an object (Rediriger les demandes pour un objet).

  6. Dans la zone Host name (Nom d'hôte), entrez le point de terminaison du site web pour votre compartiment ou votre domaine personnalisé.

    Par exemple, si vous redirigez les demandes vers une adresse de domaine racine, entrez example.com.

  7. Pour Protocol (Protocole), choisissez le protocole pour les demandes redirigées (none (aucun),http ou https).

    Si vous ne spécifiez pas de protocole, l'option par défaut est none (aucun).

  8. Sélectionnez Enregistrer les modifications.

Configurer des règles de redirection pour utiliser des redirections conditionnelles avancées

Avec les règles de redirection avancées, vous pouvez acheminer des demandes de façon conditionnelle, en fonction de noms de clés d'objets spécifiques, de préfixes dans la demande ou de codes réponse. A titre d'exemple, supposez que vous supprimiez ou renommiez un objet dans votre compartiment. Vous pouvez ajouter une règle de routage qui redirige la demande vers un autre objet. Si vous souhaitez qu'un dossier ne soit plus accessible, vous pouvez ajouter une règle de routage pour rediriger la demande vers une autre page Web. Vous pouvez également ajouter une règle de routage pour gérer des conditions d'erreur en acheminant les demandes qui renvoient l'erreur vers un autre domaine, où celle-ci sera traitée.

Lorsque vous activez l'hébergement de site web statique pour votre compartiment, vous pouvez éventuellement spécifier des règles de redirection avancées. Amazon S3 impose une limitation de 50 règles de routage par configuration de site web. Si vous avez besoin de plus de 50 règles de routage, vous pouvez utiliser la redirection d'objet. Pour de plus amples informations, veuillez consulter Utilisation de la console S3.

Pour plus d'informations sur la configuration des règles de routage à l'aide du RESTAPI, consultez PutBucketWebsitele Amazon Simple Storage Service API Reference.

Important

Pour créer des règles de redirection dans la nouvelle console Amazon S3, vous devez utiliserJSON. Pour JSON des exemples, voirExemples de règles de redirection.

Pour configurer des règles de redirection pour un site web statique

Pour ajouter des règles de redirection pour un compartiment qui a déjà l'hébergement de site Web statique activé, procédez comme suit.

  1. Ouvrez la console Amazon S3 à l'adresse https://console.aws.amazon.com/s3/.

  2. Dans la liste Compartiments, choisissez le nom d'un compartiment que vous avez configuré en tant que site web statique.

  3. Choisissez Propriétés.

  4. Sous Static website hosting (Hébergement de site web statique), choisissez Edit (Modifier).

  5. Dans la zone Règles de redirection, entrez vos règles de redirection dansJSON.

    Dans la console S3, vous décrivez les règles d'utilisation deJSON. Pour JSON des exemples, voirExemples de règles de redirection. Amazon S3 impose une limitation de 50 règles de routage par configuration de site web.

  6. Sélectionnez Enregistrer les modifications.

Éléments de règle de routage

Voici la syntaxe générale permettant de définir les règles de routage dans la configuration d'un site Web dans JSON et XML Pour configurer les règles de redirection dans la nouvelle console S3, vous devez utiliserJSON. Pour JSON des exemples, voirExemples de règles de redirection.

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.

Le tableau suivant décrit les éléments de la règle de routage.

Nom Description
RoutingRules Conteneur de l'ensemble des éléments RoutingRule.
RoutingRule

Une règle qui identifie une condition et la redirection qui est appliquée quand la condition est respectée.

Condition :

  • un conteneur RoutingRules doit comprendre au moins une règle de routage.

Condition

Conteneur de la description de la condition qui doit être respectée pour que la redirection spécifiée soit appliquée. Si la règle de routage ne comprend pas de condition, la règle s'applique à toutes les demandes.

KeyPrefixEquals

Le préfixe de nom de la clé d'objet à partir duquel les demandes sont redirigées.

KeyPrefixEquals est requis si HttpErrorCodeReturnedEquals n'est pas spécifié. Si les deux paramètres KeyPrefixEquals et HttpErrorCodeReturnedEquals sont spécifiés, les deux doivent être vrais pour que la condition soit respectée.

HttpErrorCodeReturnedEquals

Le code HTTP d'erreur qui doit correspondre pour que la redirection s'applique. En cas d'erreur, et si le code d'erreur correspond à cette valeur, la redirection spécifiée est appliquée.

HttpErrorCodeReturnedEquals est requis si KeyPrefixEquals n'est pas spécifié. Si les deux paramètres KeyPrefixEquals et HttpErrorCodeReturnedEquals sont spécifiés, les deux doivent être vrais pour que la condition soit respectée.

Redirect

Elément du conteneur qui fournit des instructions pour rediriger la demande. Vous pouvez rediriger les demandes vers un autre hôte ou une autre page ; vous pouvez également indiquer un autre protocole d'utilisation. Une règle RoutingRule doit avoir un élément Redirect. Un élément Redirect doit contenir au moins l'un des éléments enfants suivants : Protocol, HostName, ReplaceKeyPrefixWith, ReplaceKeyWith ou HttpRedirectCode.

Protocol

Le protocole, http or https, à utiliser dans l'en-tête Location renvoyé dans la réponse.

Si l'un des enfants est fourni, Protocol n'est pas requis.

HostName

Le nom d'hôte à utiliser dans l'en-tête Location qui est renvoyé dans la réponse.

Si l'un des enfants est fourni, HostName n'est pas requis.

ReplaceKeyPrefixWith

Le préfixe de nom de la clé d'objet qui remplace la valeur de KeyPrefixEquals dans la demande de redirection.

Si l'un des enfants est fourni, ReplaceKeyPrefixWith n'est pas requis. Il peut être fourni uniquement si ReplaceKeyWith n'est pas fourni.

ReplaceKeyWith

La clé de l'objet à utiliser dans l'en-tête Location qui est renvoyé dans la réponse.

Si l'un des enfants est fourni, ReplaceKeyWith n'est pas requis. Il peut être fourni uniquement si ReplaceKeyPrefixWith n'est pas fourni.

HttpRedirectCode

Le code de HTTP redirection à utiliser dans l'Locationen-tête renvoyé dans la réponse.

Si l'un des enfants est fourni, HttpRedirectCode n'est pas requis.

Exemples de règles de redirection

Les exemples suivants décrivent les tâches de redirection courantes :

Important

Pour créer des règles de redirection dans la nouvelle console Amazon S3, vous devez utiliserJSON.

Exemple 1 : Redirection après renommage du préfixe de clé

Supposez que votre compartiment contienne les objets suivants :

  • index.html

  • docs/article1.html

  • docs/article2.html

Vous décidez de remplacer le nom de dossier docs/ par documents/. Après avoir fait ce changement, vous devez rediriger les demandes pour le préfixe docs/ vers documents/. A titre d'exemple, la demande pour docs/article1.html sera redirigée vers documents/article1.html.

Dans ce cas, vous ajoutez la règle de routage suivante à la configuration du site web.

JSON
[ { "Condition": { "KeyPrefixEquals": "docs/" }, "Redirect": { "ReplaceKeyPrefixWith": "documents/" } } ]
XML
<RoutingRules> <RoutingRule> <Condition> <KeyPrefixEquals>docs/</KeyPrefixEquals> </Condition> <Redirect> <ReplaceKeyPrefixWith>documents/</ReplaceKeyPrefixWith> </Redirect> </RoutingRule> </RoutingRules>
Exemple 2 : Redirection des demandes pour un répertoire supprimé vers une page

Supposez que vous supprimiez le dossier images/(c'est-à-dire tous les objets ayant le préfixe de clé images/). Vous pouvez ajouter une règle de routage qui redirige les demandes concernant tout objet ayant le préfixe de clé images/ vers une page appelée folderdeleted.html.

JSON
[ { "Condition": { "KeyPrefixEquals": "images/" }, "Redirect": { "ReplaceKeyWith": "folderdeleted.html" } } ]
XML
<RoutingRules> <RoutingRule> <Condition> <KeyPrefixEquals>images/</KeyPrefixEquals> </Condition> <Redirect> <ReplaceKeyWith>folderdeleted.html</ReplaceKeyWith> </Redirect> </RoutingRule> </RoutingRules>
Exemple 3 : Redirection en cas d'HTTPerreur

Supposons que lorsqu'un objet demandé n'est pas trouvé, vous souhaitiez rediriger les demandes vers une instance Amazon Elastic Compute Cloud (AmazonEC2). Ajoutez une règle de redirection afin que lorsqu'un code d'HTTPétat 404 (Not Found) est renvoyé, le visiteur du site soit redirigé vers une EC2 instance Amazon qui gère la demande.

L'exemple suivant insère également le préfixe de la clé d'objet report-404/ dans la redirection. Par exemple, si vous demandez une page ExamplePage.html et que cela entraîne une erreur HTTP 404, la demande est redirigée vers une report-404/ExamplePage.html page de l'EC2instance Amazon spécifiée. S'il n'existe aucune règle de routage et que l'HTTPerreur 404 se produit, le document d'erreur spécifié dans la configuration est renvoyé.

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>

Rediriger les demandes pour un objet

Vous pouvez rediriger les demandes d'un objet vers un autre objet ou URL en définissant l'emplacement de redirection du site Web dans les métadonnées de l'objet. Vous configurez la redirection en ajoutant la propriété x-amz-website-redirect-location aux métadonnées d'objet. Sur la console Amazon S3, vous définissez l'élément Website Redirect Location (Emplacement de redirection de site web) dans les métadonnées de l'objet. Si vous utilisez Amazon S3 API, vous définissezx-amz-website-redirect-location. Le site web interprète alors l'objet comme une redirection 301.

Pour rediriger une demande vers un autre objet, vous définissez l'emplacement de redirection vers la clé de l'objet cible. Pour rediriger une demande vers un site externeURL, vous devez définir l'emplacement de redirection URL comme vous le souhaitez. Pour plus d’informations sur les métadonnées d’objet, consultez Métadonnées d'objet définies par le système.

Quand vous définissez une redirection de page, vous pouvez garder ou supprimer le contenu de l'objet source. Par exemple, si vous avez un objet page1.html dans votre compartiment, vous pouvez rediriger toutes les demandes de cette page vers un autre objet, page2.html. Vous avez deux options :

  • Conservez le contenu de l'objet page1.html et redirigez les demandes de pages.

  • Supprimez le contenu de page1.html et chargez un objet zéro octet nommé page1.html pour remplacer l'objet existant et rediriger les demandes de pages.

  1. Ouvrez la console Amazon S3 à l'adresse https://console.aws.amazon.com/s3/.

  2. Dans la liste Buckets (Compartiments), choisissez le nom d'un compartiment que vous avez configuré en tant que site web statique (par exemple, example.com).

  3. Sous Objects (Objets), sélectionnez votre objet.

  4. Choisissez Actions, puis Edit metadata (Modifier les métadonnées).

  5. Choisissez Métadonnées.

  6. Choisissez Add Metadata (Ajouter des métadonnées).

  7. Sous Type, choisissez System Defined (Défini par le système).

  8. Dans Key, choisissez x-amz-website-redirect-location.

  9. Dans Valeur, entrez le nom de clé de l'objet vers lequel vous souhaitez rediriger, par exemple /page2.html.

    Pour un autre objet dans le même compartiment, le préfixe / dans la valeur est requis. Vous pouvez également définir la valeur sur une valeur externeURL, par exemple,http://www.example.com.

  10. Choisissez Modifier les métadonnées.

Les API actions Amazon S3 suivantes prennent en charge l'x-amz-website-redirect-locationen-tête de la demande. Amazon S3 stocke la valeur de l'en-tête dans les métadonnées de l'objet sous la forme x-amz-website-redirect-location.

Un bucket configuré pour l'hébergement de sites Web contient à la fois le point de terminaison du site Web et le REST point de terminaison. Une demande pour une page qui est configurée comme une redirection 301 peut engendrer les résultats possibles suivants, selon le point de terminaison de la demande :

  • Point de terminaison de site web propre à une Région – Amazon S3 redirige la demande de page en fonction de la valeur de la propriété x-amz-website-redirect-location.

  • RESTpoint de terminaison : Amazon S3 ne redirige pas la demande de page. Il renvoie l'objet demandé.

Pour plus d'informations sur les points de terminaison, consultez Principales différences entre un point de terminaison de site Web et un point de REST API terminaison.

Lors de la définition d'une redirection de page, vous pouvez garder ou supprimer le contenu de l'objet source. A titre d'exemple, supposez que vous ayez un objet page1.html dans votre compartiment.

  • Pour conserver le contenu des demandes de page page1.html et uniquement les rediriger, vous pouvez soumettre une demande PUTObject - Copy pour créer un nouvel page1.html objet utilisant l'page1.htmlobjet existant comme source. Dans votre demande, vous définissez l'en-tête x-amz-website-redirect-location. Lorsque la demande est terminée, la page d'origine et son contenu restent inchangés, cependant Amazon S3 redirige toute demande de la page vers l'emplacement de redirection que vous avez indiqué.

  • Pour supprimer le contenu de l'page1.htmlobjet et rediriger les demandes vers la page, vous pouvez envoyer une demande d'PUTobjet pour télécharger un objet de zéro octet ayant la même clé d'objet :page1.html. Dans la PUT demande, vous définissez x-amz-website-redirect-location page1.html le nouvel objet. Une fois que la demande est terminée, page1.html n'a aucun contenu, et les demandes sont redirigées vers l'emplacement qui est spécifié par x-amz-website-redirect-location.

Lorsque vous récupérez l'objet à l'aide de l'action GETObject, ainsi que d'autres métadonnées de l'objet, Amazon S3 renvoie l'x-amz-website-redirect-locationen-tête dans la réponse.