Redirections
La gestion des règles de redirection est une exigence courante pour les applications web, en particulier dans les cas où vous ne souhaitez pas perdre les liens entrants qui ont été modifiés ou supprimés au fil du temps.
Vous trouverez ci-dessous comment gérer les règles de redirection sur vos projets d’infrastructure cloud Adobe Commerce à l’aide du fichier de configuration routes.yaml. Si les méthodes de redirection décrites dans cette rubrique ne fonctionnent pas pour vous, vous pouvez utiliser la mise en cache des en-têtes pour faire la même chose.
{default} représente le domaine par défaut configuré pour votre site. Si votre projet comporte plusieurs domaines, utilisez l’espace réservé {all} pour configurer le routage du domaine par défaut et de tous les alias. Voir Configurer les itinéraires.Mises à jour des environnements Pro
routes.yaml et la configuration cron dans le fichier .magento.app.yaml. Adobe recommande de mettre à jour et de tester les fichiers de configuration YAML dans un environnement d’intégration, puis de déployer les modifications dans l’environnement d’évaluation. Si vos modifications ne sont pas appliquées aux sites d’évaluation après le redéploiement et qu’il n’existe aucun message d’erreur associé dans le journal, vous DEVEZ Envoyez un ticket d’assistance Adobe Commerce qui décrit les modifications de configuration tentées. Incluez tous les fichiers de configuration YAML mis à jour dans le ticket.routes.yaml peut entraîner des problèmes de performances. Si votre fichier routes.yaml fait 32 Ko ou plus, déchargez vos redirections non regex et vos réécritures vers Fastly. Voir Déchargement des redirections non regex vers Fastly au lieu de Nginx (itinéraires) dans le Centre d’aide d’Adobe Commerce.Redirections de l’ensemble de l’itinéraire
En utilisant les redirections d’itinéraire complet, vous pouvez définir des itinéraires simples à l’aide du fichier routes.yaml. Par exemple, vous pouvez rediriger d’un domaine apex vers un sous-domaine www comme suit :
http://{default}/:
type: redirect
to: http://www.{default}/
Redirections d’itinéraire partiel
Dans le fichier .magento/routes.yaml, vous pouvez ajouter des règles de redirection partielles à des itinéraires existants en fonction de la correspondance des modèles :
http://{default}/:
redirects:
expires: 1d
paths:
"/from": { to: "http://example.com/" }
"/regexp/(.*)/matching": { to: "http://example.com/$1", regexp: true }
Les redirections partielles fonctionnent avec tout type de route, y compris les routes desservies directement par l'application.
Deux clés sont disponibles sous redirects :
-
expires—Facultatif, spécifie la durée de mise en cache de la redirection dans le navigateur. Les exemples de valeurs valides comprennent
3600s,1d,2w,3m. -
chemins : une ou plusieurs paires clé-valeur qui spécifient la configuration des règles de redirection d’itinéraire partiel.
Pour chaque règle de redirection, la clé est une expression permettant de filtrer les chemins de requête pour la redirection. La valeur est un objet qui spécifie la destination cible de la redirection et les options de traitement de la redirection.
L’objet de valeur possède les propriétés suivantes :
table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 Propriété Description toObligatoire, chemin d’accès absolu partiel, URL avec protocole et hôte ou modèle spécifiant la destination cible de la règle de redirection. regexpFacultatif, la valeur par défaut est false. Indique si la clé de chemin doit être interprétée comme une expression régulière PCRE.prefixIndique si la redirection s’applique à la fois au chemin et à tous ses enfants, ou uniquement au chemin lui-même. La valeur par défaut est true. Cette valeur n’est pas prise en charge siregexpesttrue.append_suffixDétermine si le suffixe est conservé avec la redirection. La valeur par défaut est true. Cette valeur n’est pas prise en charge si la cléregexpesttrueou* si la cléprefixestfalse.codeIndique le code d’état HTTP. Les codes d’état valides sont 301(Déplacé définitivement),302,307et308. La valeur par défaut est302.expiresFacultatif, indique la durée de mise en cache de la redirection dans le navigateur. La valeur par défaut est la valeur expiresdéfinie directement sous la cléredirects, mais à ce niveau, vous pouvez affiner l’expiration du cache pour les redirections partielles individuelles.
Exemples de redirections d’itinéraire partiel
Les exemples suivants montrent comment spécifier des redirections d’itinéraire partiel dans le fichier routes.yaml à l’aide de diverses options de configuration paths.
Correspondance de modèles d’expressions régulières
Utilisez le format suivant pour configurer les requêtes de redirection en fonction d’une expression régulière.
http://{default}/:
type: upstream
redirects:
paths:
"/regexp/(.*)/match": { to: "http://example.com/$1", regexp: true }
Cette configuration filtre les chemins d’accès aux requêtes par rapport à une expression régulière et redirige les requêtes correspondantes vers https://example.com. Par exemple, une requête vers https://example.com/regexp/a/b/c/match redirige vers https://example.com/a/b/c.
Correspondance de modèles de préfixe
Utilisez le format suivant pour configurer des requêtes de redirection pour les chemins commençant par un modèle de préfixe spécifié.
http://{default}/:
type: upstream
redirects:
paths:
"/from": { to: "https://{default}/to", prefix: true }
Cette configuration fonctionne comme suit :
-
Redirige les requêtes qui correspondent au modèle
/fromvers le cheminhttp://{default}/to. -
Redirige vers
https://{default}/to/another/pathles requêtes qui correspondent au modèle/from/another/path. -
Si vous définissez la propriété
prefixsurfalse, les requêtes qui correspondent au modèle de/fromdéclenchent une redirection, mais les requêtes qui correspondent au modèle de/from/another/pathne le font pas.
Correspondance du modèle de suffixe
Utilisez le format suivant pour configurer les requêtes de redirection qui ajoutent le suffixe de chemin de la requête à la destination cible :
http://{default}/:
type: upstream
redirects:
paths: "/from": { to: "https://{default}/to", append_suffix: false }
Cette configuration fonctionne comme suit :
-
Redirige les requêtes qui correspondent au modèle
/from/path/suffixvers le cheminhttps://{default}/to. -
Si vous définissez la propriété
append_suffixsurtrue, les requêtes qui correspondent/from/path/suffixsont redirigées vers le chemin d’accèshttps://{default}/to/path/suffix.
Configuration du cache spécifique au chemin d’accès
Utilisez le format suivant pour personnaliser le temps de mise en cache d’une redirection à partir d’un chemin spécifique :
http://{default}/:
type: upstream
redirects:
expires: 1d
paths:
"/from": { to: "https://example.com/" }
"/here": { to: "https://example.com/there", expires: "2w" }
Cette configuration fonctionne comme suit :
-
Les redirections à partir du premier chemin (
/from) sont mises en cache pendant un jour. -
Les redirections à partir du deuxième chemin (
/here) sont mises en cache pendant deux semaines.