Redirections

La gestion des règles de redirection est une exigence courante dans les applications web, notamment lorsque vous ne souhaitez pas perdre les liens entrants qui ont été modifiés ou supprimés au fil du temps.

L’exemple suivant montre comment gérer les règles de redirection sur votre Adobe Commerce pour les projets d’infrastructure cloud à l’aide du fichier de configuration routes.yaml. Si les méthodes de redirection abordées dans cette rubrique ne fonctionnent pas pour vous, vous pouvez utiliser des en-têtes de mise en cache pour faire la même chose.

NOTE
Les exemples de configuration d’itinéraire suivants utilisent des modèles d’itinéraire avec des espaces réservés. L’espace réservé {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 pour le domaine par défaut et tous les alias. Voir Configuration des itinéraires.

Mises à jour des environnements Pro

WARNING
Certains projets Pro ont besoin d’un ticket de support pour mettre à jour la configuration de l’itinéraire dans le fichier 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’y a aucun message d’erreur associé dans le journal, alors vous devez envoyer un ticket d’assistance Adobe Commerce qui décrit les tentatives de modifications de configuration. Incluez tous les fichiers de configuration YAML mis à jour dans le ticket.
WARNING
Pour Adobe Commerce sur les projets d’infrastructure cloud, la configuration de nombreuses redirections et réécritures non regex dans le fichier 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 réécrivez en mode Fastly. Voir Décharger les redirections non regex vers Fastly au lieu de Nginx (itinéraires) dans le Centre d’aide Adobe Commerce.

Redirections tout-itinéraire

À l’aide de redirections d’itinéraire, vous pouvez définir des itinéraires simples à l’aide du fichier routes.yaml. Par exemple, vous pouvez rediriger d’un domaine d’application 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 aux itinéraires existants en fonction de la correspondance de 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 n’importe quel type d’itinéraire, y compris les itinéraires desservis directement par l’application.

Deux clés sont disponibles sous redirects :

  • expires : facultatif. Cette option spécifie le temps nécessaire pour mettre en cache la redirection dans le navigateur. Parmi les exemples de valeurs valides, citons 3600s, 1d, 2w, 3m.

  • paths : une ou plusieurs paires clé-valeur qui spécifient la configuration pour les règles de redirection à 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 pour la redirection et les options pour le traitement de la redirection.

    L’objet value 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
    to Obligatoire, un chemin absolu partiel, une URL avec protocole et hôte, ou un modèle qui spécifie la destination cible de la règle de redirection.
    regexp Facultatif, 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.
    prefix Indique si la redirection s’applique à la fois au chemin et à tous ses enfants, ou simplement au chemin lui-même. Par défaut : true. Cette valeur n’est pas prise en charge si regexp est true.
    append_suffix Détermine si le suffixe est transféré avec la redirection. Par défaut : true. Cette valeur n’est pas prise en charge si la clé regexp est true ou* si la clé prefix est false.
    code Indique le code d’état HTTP. Les codes d’état valides sont 301 (Déplacé définitivement), 302, 307 et 308. Par défaut : 302.
    expires Facultatif, indique le temps nécessaire pour mettre en cache la redirection dans le navigateur. La valeur par défaut est expires définie directement sous la clé redirects, mais à ce niveau, vous pouvez affiner l’expiration du cache pour les redirections partielles individuelles.

Exemples de redirections à itinéraire partiel

Les exemples suivants montrent comment spécifier des redirections à itinéraire partiel dans le fichier routes.yaml à l’aide de diverses options de configuration paths.

Correspondance de modèle d’expression régulière

Utilisez le format suivant pour configurer les demandes de redirection basées sur 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 de requête 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 du modèle de préfixe

Utilisez le format suivant pour configurer les demandes 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 /from vers le chemin http://{default}/to.

  • Redirige les demandes qui correspondent au modèle /from/another/path vers https://{default}/to/another/path.

  • Si vous définissez la propriété prefix sur false, les requêtes correspondant au modèle /from déclenchent une redirection, mais les requêtes correspondant au modèle /from/another/path ne le font pas.

Correspondance de motifs 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/suffix vers le chemin https://{default}/to.

  • Si vous définissez la propriété append_suffix sur true, les demandes qui correspondent à /from/path/suffix redirigent vers le chemin https://{default}/to/path/suffix.

Configuration du cache spécifique au chemin d’accès

Utilisez le format suivant pour personnaliser l’heure 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 du premier chemin d’accès (/from) sont mises en cache pendant une journée.

  • Les redirections du deuxième chemin d’accès (/here) sont mises en cache pendant deux semaines.

recommendation-more-help
05f2f56e-ac5d-4931-8cdb-764e60e16f26