Exemple de référence de redirections et de réécritures - AWS Amplify Hébergement

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.

Exemple de référence de redirections et de réécritures

Cette section inclut des exemples de code pour divers scénarios de redirection courants. Vous pouvez utiliser ces exemples pour comprendre la syntaxe permettant de créer vos propres redirections et réécritures.

Note

La correspondance du domaine d'adresse d'origine ne fait pas la distinction majuscules/minuscules.

Redirections et réécritures simples

Vous pouvez utiliser l'exemple de code suivant pour rediriger définitivement une page spécifique à une nouvelle adresse.

Adresse d'origine Adresse de destination Type de redirection Code pays

/original.html

/destination.html

permanent redirect (301)

JSON [{"source": "/original.html", "status": "301", "target": "/destination.html", "condition": null}]

Vous pouvez utiliser l'exemple de code suivant pour rediriger n'importe quel chemin dans un dossier vers le même chemin dans un autre dossier.

Adresse d'origine Adresse de destination Type de redirection Code pays

/docs/<*>

/documents/<*>

permanent redirect (301)

JSON [{"source": "/docs/<*>", "status": "301", "target": "/documents/<*>", "condition": null}]

Vous pouvez utiliser l'exemple de code suivant pour rediriger l'ensemble du trafic vers index.html en tant que réécriture. Dans ce scénario, la réécriture permet d'indiquer à l'utilisateur qu'il a accédé à l'adresse d'origine.

Adresse d'origine Adresse de destination Type de redirection Code pays

/<*>

/index.html

rewrite (200)

JSON [{"source": "/<*>", "status": "200", "target": "/index.html", "condition": null}]

Vous pouvez utiliser l'exemple de code suivant pour utiliser une réécriture afin de modifier le sous-domaine qui est présenté à l'utilisateur.

Adresse d'origine Adresse de destination Type de redirection Code pays

https://mydomain.com

https://www.mydomain.com

rewrite (200)

JSON [{"source": "https://mydomain.com", "status": "200", "target": "https://www.mydomain.com", "condition": null}]

Vous pouvez utiliser l'exemple de code suivant pour rediriger vers un autre domaine avec un préfixe de chemin.

Adresse d'origine Adresse de destination Type de redirection Code pays

https://mydomain.com

https://www.mydomain.com/documents

temporary redirect (302)

JSON [{"source": "https://mydomain.com", "status": "302", "target": "https://www.mydomain.com/documents/", "condition": null}]

Vous pouvez utiliser l'exemple de code suivant pour rediriger les chemins d'un dossier introuvable vers une page 404 personnalisée.

Adresse d'origine Adresse de destination Type de redirection Code pays

/<*>

/404.html

not found (404)

JSON [{"source": "/<*>", "status": "404", "target": "/404.html", "condition": null}]

Redirections pour les applications Web d'une seule page () SPA

La plupart SPA des frameworks supportent HTML5 l'historique. pushState() pour modifier l'emplacement du navigateur sans lancer de demande au serveur. Cela fonctionne pour les utilisateurs qui commencent leur transition à partir de la racine (ou /index.html), mais échoue pour les utilisateurs qui accèdent directement à une autre page.

L'exemple suivant utilise des expressions régulières pour configurer une réécriture 200 pour tous les fichiers dans index.html, à l'exception des extensions de fichier spécifiées dans l'expression régulière.

Adresse d'origine Adresse de destination Type de redirection Code pays

</^[^.]+$|\.(?!(css|gif|ico|jpg|js|png|txt|svg|woff|woff2|ttf|map|json|webp)$)([^.]+$)/>

/index.html

200

JSON [{"source": "</^[^.]+$|\.(?!(css|gif|ico|jpg|js|png|txt|svg|woff|woff2|ttf|map|json|webp)$)([^.]+$)/>", "status": "200", "target": "/index.html", "condition": null}]

Réécriture du proxy inversé

L'exemple suivant utilise une réécriture pour transférer du contenu provenant d'un autre emplacement afin que l'utilisateur sache que le domaine n'a pas changé.

Adresse d'origine Adresse de destination Type de redirection Code pays

/images/<*>

https://images.otherdomain.com/<*>

rewrite (200)

JSON [{"source": "/images/<*>", "status": "200", "target": "https://images.otherdomain.com/<*>", "condition": null}]

Trailing slashes and clean URLs

Pour créer URL des structures propres comme about au lieu de about.html, les générateurs de sites statiques tels que Hugo génèrent des répertoires pour les pages contenant un index.html (/about/index.html). Amplify crée automatiquement un nettoyage URLs en ajoutant une barre oblique lorsque cela est nécessaire. Le tableau ci-dessous présente différents scénarios :

Entrées utilisateur dans le navigateur URLdans la barre d'adresse Document affiché

/about

/about

/about.html

/about (when about.html returns 404)

/about/

/about/index.html

/about/

/about/

/about/index.html

Espaces réservés

Vous pouvez utiliser l'exemple de code suivant pour rediriger des chemins dans une structure de dossiers vers une structure correspondante dans un autre dossier.

Adresse d'origine Adresse de destination Type de redirection Code pays

/docs/<year>/<month>/<date>/<itemid>

/documents/<year>/<month>/<date>/<itemid>

permanent redirect (301)

JSON [{"source": "/docs/<year>/<month>/<date>/<itemid>", "status": "301", "target": "/documents/<year>/<month>/<date>/<itemid>", "condition": null}]

Chaînes de requête et paramètres de chemin

Vous pouvez utiliser l'exemple de code suivant pour rediriger un chemin vers un dossier avec un nom qui correspond à la valeur d'un élément de la chaîne de requête dans l'adresse d'origine :

Adresse d'origine Adresse de destination Type de redirection Code pays

/docs?id=<my-blog-id-value

/documents/<my-blog-post-id-value>

permanent redirect (301)

JSON [{"source": "/docs?id=<my-blog-id-value>", "status": "301", "target": "/documents/<my-blog-id-value>", "condition": null}]

Note

Amplify transmet tous les paramètres de chaîne de requête au chemin de destination pour les redirections 301 et 302. Toutefois, si l'adresse d'origine inclut une chaîne de requête définie sur une valeur spécifique, comme illustré dans cet exemple, Amplify ne transmet pas les paramètres de requête. Dans ce cas, la redirection s'applique uniquement aux demandes adressées à l'adresse de destination avec la valeur de requête spécifiéeid.

Vous pouvez utiliser l'exemple de code suivant pour rediriger tous les chemins introuvables à un niveau donné d'une structure de dossiers vers le fichier index.html d'un dossier spécifique.

Adresse d'origine Adresse de destination Type de redirection Code pays

/documents/<folder>/<child-folder>/<grand-child-folder>

/documents/index.html

not found (404)

JSON [{"source": "/documents/<x>/<y>/<z>", "status": "404", "target": "/documents/index.html", "condition": null}]

Redirections basées sur les régions

Vous pouvez utiliser l'exemple de code suivant pour rediriger des requêtes en fonction de la région.

Adresse d'origine Adresse de destination Type de redirection Code pays

/documents

/documents/us/

temporary redirect (302)

<US>

JSON [{"source": "/documents", "status": "302", "target": "/documents/us/", "condition": "<US>"}]

Utilisation d'expressions génériques dans les redirections et les réécritures

Vous pouvez utiliser l'expression générique<*>, dans l'adresse d'origine pour une redirection ou une réécriture. Vous devez placer l'expression à la fin de l'adresse d'origine et elle doit être unique. Amplify ignore les adresses d'origine qui incluent plusieurs expressions génériques, ou les utilise à un emplacement différent.

Voici un exemple de redirection valide avec une expression générique.

Adresse d'origine Adresse de destination Type de redirection Code pays

/docs/<*>

/documents/<*>

permanent redirect (301)

Les deux exemples suivants illustrent des redirections non valides avec des expressions génériques.

Adresse d'origine Adresse de destination Type de redirection Code pays

/docs/<*>/content

/documents/<*>/content

permanent redirect (301)

/docs/<*>/content/<*>

/documents/<*>/content/<*>

permanent redirect (301)