

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.

# Transformations pour les règles de l'auditeur
<a name="rule-transforms"></a>

Une transformation de règle réécrit les demandes entrantes avant qu'elles ne soient acheminées vers des cibles. La réécriture d'une demande ne modifie pas la décision de routage prise lors de l'évaluation des conditions des règles. Cela est utile lorsque les clients envoient une URL ou un en-tête d'hôte différent de celui attendu par les cibles.

L'utilisation de transformations de règles décharge l'équilibreur de charge de la responsabilité de modifier les chemins, les chaînes de requête et les en-têtes d'hôte. Il n'est donc plus nécessaire d'ajouter une logique de modification personnalisée au code de votre application ou de faire appel à un proxy tiers pour effectuer les modifications.

Les équilibreurs de charge d'application prennent en charge les transformations suivantes pour les règles d'écoute.Transforme

`host-header-rewrite`  
Réécrit l'en-tête de l'hôte dans la demande. La transformation utilise une expression régulière pour correspondre à un modèle dans l'en-tête de l'hôte, puis le remplace par une chaîne de remplacement.

`url-rewrite`  
Réécrit l'URL de la demande. La transformation utilise une expression régulière pour correspondre à un modèle dans l'URL de demande, puis le remplace par une chaîne de remplacement.

**Les bases de la transformation**
+ Vous pouvez ajouter une transformation de réécriture d'en-tête d'hôte et une transformation de réécriture d'URL par règle.
+ Vous ne pouvez pas ajouter de transformation à une règle par défaut.
+ S'il n'y a aucune correspondance de modèle, la demande d'origine est envoyée à la cible.
+ Si un modèle correspond mais que la transformation échoue, nous renvoyons une erreur HTTP 500.
+ Les expressions régulières utilisées dans les transformations de règles ne prennent pas en charge les fonctionnalités suivantes : lookaheads, lookbehinds, backreferences, groupes atomiques, quantificateurs possessifs, sous-programmes, récursivité et classes de caractères Unicode (telles que). `\p{L}`

## Transformations de réécriture de l'en-tête de l'hôte
<a name="host-header-rewrite-transforms"></a>

Vous pouvez modifier le nom de domaine indiqué dans l'en-tête de l'hôte.

**Example Exemple de transformation d'en-tête d'hôte**  
Vous pouvez spécifier une transformation lorsque vous créez ou modifiez une règle. Pour en savoir plus veuillez consulter les commandes [create-rule](https://docs.aws.amazon.com/cli/latest/reference/elbv2/create-rule.html) et [modify-rule](https://docs.aws.amazon.com/cli/latest/reference/elbv2/modify-rule.html). Voici un exemple de transformation d'en-tête d'hôte. Il transforme l'en-tête de l'hôte en point de terminaison interne.  

```
[
  {
      "Type": "host-header-rewrite",
      "HostHeaderRewriteConfig": {
          "Rewrites": [
              {
                  "Regex": "^mywebsite-(.+).com$",
                  "Replace": "internal.dev.$1.myweb.com"
              }
          ]
      }
  }
]
```
Par exemple, cette transformation réécrit l'en-tête de l'hôte en `https://mywebsite-example.com/project-a` tant que`https://internal.dev.example.myweb.com/project-a`.

## Transformations de réécriture d'URL
<a name="url-rewrite-transforms"></a>

Vous pouvez modifier le chemin ou la chaîne de requête de l'URL. En réécrivant l'URL au niveau de l'équilibreur de charge, votre frontend URLs peut rester cohérent pour les utilisateurs et les moteurs de recherche même si vos services principaux changent. Vous pouvez également simplifier les chaînes de requête d'URL complexes afin de faciliter leur saisie par les clients.

Notez que vous ne pouvez pas modifier le protocole ou le port de l'URL, mais uniquement le chemin et la chaîne de requête.

**Example Exemple de transformation de réécriture d'URL**  
Vous pouvez spécifier une transformation lorsque vous créez ou modifiez une règle. Pour en savoir plus veuillez consulter les commandes [create-rule](https://docs.aws.amazon.com/cli/latest/reference/elbv2/create-rule.html) et [modify-rule](https://docs.aws.amazon.com/cli/latest/reference/elbv2/modify-rule.html). Voici un exemple de transformation de réécriture d'URL. Il transforme la structure du répertoire en chaîne de requête.  

```
[
  {
      "Type": "url-rewrite",
      "UrlRewriteConfig": {
          "Rewrites": [
              {
                  "Regex": "^/dp/([A-Za-z0-9]+)/?$",
                  "Replace": "/product.php?id=$1"
              }
          ]
      }
  }
]
```
Par exemple, cette transformation réécrit l'URL de la demande `https://www.example.com/dp/B09G3HRMW` sous `https://www.example.com/product.php?id=B09G3HRMW` la forme.

**En quoi les réécritures d'URL diffèrent des redirections d'URL**


| Caractéristiques | Redirections d'URL | Réécritures d'URL | 
| --- | --- | --- | 
| Affichage de l'URL | Modifications apportées à la barre d'adresse du navigateur | Aucune modification dans la barre d'adresse du navigateur | 
| Codes d’état | Utilise 301 (permanent) ou 302 (temporaire) | Aucune modification du code d'état | 
| Traitement | Côté navigateur | Côté serveur | 
| Utilisations courantes | Changement de domaine, consolidation du site Web, correction des liens brisés | Nettoyez URLs pour le référencement, masquez les structures complexes, fournissez un mappage d'URL existant | 