

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
<a name="how-to-page-redirect"></a>

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.

**Topics**
+ [Rediriger les demandes pour le point de terminaison de site web de votre compartiment vers un autre compartiment ou domaine](#redirect-endpoint-host)
+ [Configurer des règles de redirection pour utiliser des redirections conditionnelles avancées](#advanced-conditional-redirects)
+ [Rediriger les demandes pour un objet](#redirect-requests-object-metadata)

## Rediriger les demandes pour le point de terminaison de site web de votre compartiment vers un autre compartiment ou domaine
<a name="redirect-endpoint-host"></a>

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é](https://docs.aws.amazon.com/AmazonS3/latest/dev/website-hosting-custom-domain-walkthrough.html).

**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/](https://console.aws.amazon.com/s3/).

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

1. Choisissez **Propriétés**.

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

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

1. 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**.

1. 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)**.

1. Sélectionnez **Enregistrer les modifications**.

## Configurer des règles de redirection pour utiliser des redirections conditionnelles avancées
<a name="advanced-conditional-redirects"></a>

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](#page-redirect-using-console).

Pour plus d'informations sur la configuration des règles de routage à l'aide de l'API REST, consultez [PutBucketWebsite](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketWebsite.html)le *manuel Amazon Simple Storage Service API Reference*.

**Important**  
Pour créer des règles de redirection dans la nouvelle console Amazon S3, vous devez utiliser JSON. Pour des exemples JSON, consultez [Exemples de règles de redirection](#redirect-rule-examples).

**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/](https://console.aws.amazon.com/s3/).

1. Dans le volet de navigation de gauche, choisissez **Compartiments à usage général**.

1. Dans la liste de compartiments, choisissez le nom d’un compartiment que vous avez configuré en tant que site Web statique.

1. Choisissez **Propriétés**.

1. Sous **Static website hosting (Hébergement de site Web statique)**, choisissez **Edit (Modifier)**.

1. Dans la zone **Redirection rules (Règles de redirection)**, entrez vos règles de redirection dans JSON. 

   Dans la console S3, vous décrivez les règles en utilisant JSON. Pour des exemples JSON, consultez [Exemples de règles de redirection](#redirect-rule-examples). Amazon S3 impose une limitation de 50 règles de routage par configuration de site Web.

1. Sélectionnez **Enregistrer les modifications**.

### Éléments de règle de routage
<a name="configure-bucket-as-website-routing-rule-syntax"></a>

Voici la syntaxe générale permettant de définir les règles de routage dans une configuration de site Web en JSON et XML Pour configurer les règles de redirection dans la nouvelle console S3, vous devez utiliser JSON. Pour des exemples JSON, consultez [Exemples de règles de redirection](#redirect-rule-examples).

------
#### [ 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 : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AmazonS3/latest/userguide/how-to-page-redirect.html)  | 
| 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 d’erreur HTTP 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 redirection HTTP à utiliser dans l’en-tête `Location` qui est renvoyé dans la réponse. Si l'un des enfants est fourni, `HttpRedirectCode` n'est pas requis.  | 

#### Exemples de règles de redirection
<a name="redirect-rule-examples"></a>

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 utiliser JSON.

**Example 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.  

```
[
    {
        "Condition": {
            "KeyPrefixEquals": "docs/"
        },
        "Redirect": {
            "ReplaceKeyPrefixWith": "documents/"
        }
    }
]
```

```
  <RoutingRules>
    <RoutingRule>
    <Condition>
      <KeyPrefixEquals>docs/</KeyPrefixEquals>
    </Condition>
    <Redirect>
      <ReplaceKeyPrefixWith>documents/</ReplaceKeyPrefixWith>
    </Redirect>
    </RoutingRule>
  </RoutingRules>
```

**Example 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`.  

```
[
    {
        "Condition": {
            "KeyPrefixEquals": "images/"
        },
        "Redirect": {
            "ReplaceKeyWith": "folderdeleted.html"
        }
    }
]
```

```
  <RoutingRules>
    <RoutingRule>
    <Condition>
       <KeyPrefixEquals>images/</KeyPrefixEquals>
    </Condition>
    <Redirect>
      <ReplaceKeyWith>folderdeleted.html</ReplaceKeyWith>
    </Redirect>
    </RoutingRule>
  </RoutingRules>
```

**Example 3 : redirection vers un autre domaine avec un chemin spécifique**  
Supposons que vous souhaitiez rediriger les demandes pour un chemin spécifique vers un autre domaine. Par exemple, vous souhaitez rediriger les demandes pour `/redirect/me` vers `https://example.com/new/path`.  
Lorsque vous utilisez `HostName` et `ReplaceKeyWith` ensemble, Amazon S3 crée l’URL de redirection en concaténant le nom d’hôte et la clé de remplacement en les séparant par une barre oblique. Par conséquent, vous ne devez pas inclure de barre oblique initiale dans la valeur `ReplaceKeyWith`. Amazon S3 ajoute automatiquement la barre oblique entre le nom d’hôte et la clé de remplacement.  

```
[
    {
        "Condition": {
            "KeyPrefixEquals": "redirect/me"
        },
        "Redirect": {
            "HostName": "example.com",
            "ReplaceKeyWith": "new/path"
        }
    }
]
```

```
  <RoutingRules>
    <RoutingRule>
    <Condition>
      <KeyPrefixEquals>redirect/me</KeyPrefixEquals>
    </Condition>
    <Redirect>
      <HostName>example.com</HostName>
      <ReplaceKeyWith>new/path</ReplaceKeyWith>
    </Redirect>
    </RoutingRule>
  </RoutingRules>
```
Cette configuration redirige une demande pour `https://yourbucket.s3-website-region.amazonaws.com/redirect/me` vers `https://example.com/new/path`. Notez que `ReplaceKeyWith` est défini sur `new/path` sans barre oblique.

**Example 4 : Redirection en cas d'erreur HTTP**  
Supposons que, lorsqu’un objet demandé est introuvable, vous souhaitiez rediriger les demandes vers une instance Amazon Elastic Compute Cloud (Amazon EC2). Ajoutez une règle de redirection pour que le visiteur du site soit redirigé vers une instance Amazon EC2 qui gère la demande dès qu’un code de statut HTTP 404 (Not Found (Non trouvé)) est renvoyé.   
L’exemple suivant insère également le préfixe de la clé d’objet `report-404/` dans la redirection. À titre d’exemple, si vous demandez une page `ExamplePage.html` et qu’une erreur HTTP 404 est renvoyée, la demande est redirigée vers une page `report-404/ExamplePage.html` sur l’instance Amazon EC2 spécifiée. S’il n’y a pas de règle de routage et qu’une erreur HTTP 404 se produit, le document d’erreur spécifié dans la configuration est renvoyé.  

```
[
    {
        "Condition": {
            "HttpErrorCodeReturnedEquals": "404"
        },
        "Redirect": {
            "HostName": "ec2-11-22-333-44.compute-1.amazonaws.com",
            "ReplaceKeyPrefixWith": "report-404/"
        }
    }
]
```

```
  <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
<a name="redirect-requests-object-metadata"></a>

Vous pouvez rediriger les demandes d’un objet vers un autre objet ou une autre 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 l’[API Amazon S3](#page-redirect-using-rest-api), vous définissez `x-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 une URL externe, vous définissez l’emplacement de redirection vers l’URL choisie. Pour plus d’informations sur les métadonnées d’objet, consultez [Métadonnées d’objet définies par le système](UsingMetadata.md#SysMetadata).

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. 

### Utilisation de la console S3
<a name="page-redirect-using-console"></a>

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

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

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

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

1. Choisissez **Métadonnées**.

1. Sélectionnez **Ajouter des métadonnées**.

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

1. Dans **Key**, choisissez **x-amz-website-redirect-location**.

1. 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 URL externe, par exemple, `http://www.example.com`.

1. Choisissez **Edit metadata (Modifier les métadonnées)**.

### Utilisation de l'API REST
<a name="page-redirect-using-rest-api"></a>

Les actions d’API Amazon S3 suivantes prennent en charge l’en-tête `x-amz-website-redirect-location` dans 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`. 
+ [PUT Object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html)
+ [Lancement du chargement partitionné](https://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadInitiate.html)
+ [POST Object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html)
+ [PUT Object - Copy](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectCOPY.html)

Un compartiment configuré pour l’hébergement d’un site Web a un point de terminaison de site Web et un point de terminaison REST. 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`. 
+ **Point de terminaison REST** – Amazon S3 ne redirige pas la demande de page. Il renvoie l’objet demandé.

Pour plus d’informations sur les points de terminaison, consultez [Différences clés entre un point de terminaison de site web et un point de terminaison de l’API REST](WebsiteEndpoints.md#WebsiteRestEndpointDiff).

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 de `page1.html` et rediriger uniquement les demandes de page, vous pouvez envoyer une demande [PUT Object - Copy](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectCOPY.html) pour créer un objet `page1.html` qui utilise l’objet `page1.html` 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’objet `page1.html` et rediriger les demandes pour la page, vous pouvez envoyer une demande PUT Object pour charger un objet de 0 octet ayant la même clé d’objet : `page1.html`. Dans une demande PUT, vous définissez `x-amz-website-redirect-location` pour `page1.html`dans 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 [GET Object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html) avec les autres métadonnées d’objet, Amazon S3 renvoie l’en-tête `x-amz-website-redirect-location` dans la réponse.