
Comment gérer les redirections d'URL dans Drupal. Aperçu du module Redirect
L'un des problèmes les plus gênants sur les sites web est la présence de liens cassés, menant nulle part ou affichant un contenu totalement différent de celui attendu. Ni les utilisateurs d'Internet ni Googlebot ne les apprécient. La manière d'éviter les liens incorrects dans Drupal est d'utiliser le module Redirect.
Les redirections créées par ce module sont extrêmement utiles lorsqu'il y a des modifications apportées à la structure des URL du site web - tant globales que provoquées par une simple édition de contenu individuel. Les redirections garantissent que l'utilisateur trouvera toujours ce qu'il cherche, même si l'URL n'est plus valide.
Dates
Le module a été mis à disposition pour la première fois en 2006 par Moshe Weitzman sous une forme très simplifiée. La première version alpha a été publiée en 2010, et une version stable a été publiée pour Drupal 8 en 2017. Depuis plusieurs années, Redirect se développe de manière beaucoup plus dynamique, avec le soutien de la communauté de Drupal.org.
Popularité
Même l'absence d'une version stable pour Drupal 7 n’a pas découragé les développeurs web d'utiliser le module Redirect. Selon les statistiques officielles, il est actuellement utilisé sur plus de 260 000 sites web, dont 45 % utilisent Drupal 8.
Créateurs du module
Le module est supervisé par trois programmeurs:
- Sascha Grossenbacher - Développeur principal chez MD Systems,
- Dave Reid - Développeur senior chez Lullabot,
- Oleksandr Dekhteruk - Ingénieur logiciel senior chez Epam.
Les dernières versions ont reçu beaucoup de soutien de la part d'autres utilisateurs de Drupal.org. Jusqu'à présent, plus de 110 personnes ont contribué à la création du module.
Objectif du module
Le module Redirect est utilisé pour créer des redirections d'URL dans Drupal. Grâce à lui, vous pouvez rediriger l'utilisateur d'une adresse à l'intérieur du site web vers une autre. Notez qu'il y a une grande différence entre une redirection et un alias.
- Un alias est l'URL "conviviale" du contenu que vous voyez dans la barre d'adresse d'un navigateur web. Si vous ne définissez pas d'alias pour une sous-page donnée, elle aura une adresse par défaut comme « /node/123 » ou « /taxonomy/term/456 ».
- Une redirection est une règle qui se déclenche lorsque vous atteignez une adresse URL donnée. La règle spécifie l'adresse cible vers laquelle l'utilisateur sera redirigé, la langue de la redirection et le type de code HTTP renvoyé. La page cible n'apparaîtra dans la barre d'adresse du navigateur que lorsqu'il n'y aura plus de redirections à effectuer.
Les redirections d'URL sont principalement utilisées pour améliorer la structure des liens au sein d'une page web. Le module Redirect, cependant, a quelques applications plus intéressantes résultant du fait qu'il a reçu dans sa version pour Drupal 8 certaines des fonctionnalités du module Global Redirect. Je les mentionnerai plus tard dans cet article.
Déballage
Vous pouvez télécharger le module Redirect depuis le site Drupal.org. La méthode d'installation recommandée est d'utiliser la commande Composer:
composer require drupal/redirect
Vous pouvez trouver le panneau de paramétrages du module en allant dans Configuration → Recherche et Métadonnées → Redirections d'URL.
Utilisation du module
L'élément principal de la configuration du module est la liste des redirections:
Pour ajouter une nouvelle redirection, sélectionnez "+ Add redirect" puis remplissez les informations nécessaires, c'est-à-dire l'adresse source, l'adresse cible, le code HTTP et la langue.
Il est bon d'explorer les sept codes HTTP disponibles. En effet, ils influencent grandement le référencement. Vous aurez certainement besoin de :
- 301 Déplacé de manière permanente - la page demandée a définitivement changé d'adresse. C'est un signal important pour les moteurs de recherche, qui suppriment l'adresse précédente de leur ressources et la remplacent par la nouvelle.
- 302 Trouvé - la page demandée est temporairement disponible sous une autre adresse. Ce code est utile dans une situation où vous testez le changement de structure des liens sur une page web, mais que vous souhaitez que le changement soit pris en compte par les robots des moteurs de recherche.
Les autres codes disponibles sont :
- 300 Choix multiples - il existe plus d'une façon de traiter la requête donnée (rarement utilisé, par exemple pour le traitement de formats vidéo différents).
- 303 Voir autre - la réponse à la requête se trouve sous une autre adresse (utilisé par exemple pour les requêtes POST).
- 304 Non modifié - information pour le navigateur indiquant que la page web n’a pas été modifiée depuis la dernière visite et qu'elle peut être chargée à partir du cache.
- 305 Utiliser un proxy - la page web demandée n'est accessible que via un proxy.
- 307 Redirection temporaire - identique à 302, mais avec la supposition que la méthode HTTP ne peut pas être modifiée.
Options supplémentaires
Une fois que vous avez maîtrisé la création de redirections d'URL, consultez l'onglet "Paramètres". Vous trouverez là deux options importantes qui vous aideront à obtenir de meilleurs résultats avec Google.
- Créer automatiquement des redirections lorsque les alias d'URL sont modifiés - assurez-vous de sélectionner ce paramètre. Cela vous aidera à garder la page web propre en cas de modifications de la liaison interne. Lorsque vous modifiez un alias sur une page web, une redirection de l'ancienne adresse vers la nouvelle sera automatiquement créée.
- Imposer des URLs propres et canoniques - c'est l'option qui convainc de nombreux développeurs de choisir le module Redirect. Elle redirige l'utilisateur vers l'adresse canonique de la page donnée, afin qu’il ne reste pas sur une adresse opérationnelle comme "/node/123". Ce paramètre était disponible dans Drupal 7 via le module Global Redirect.
Hooks et intégrations
Le module fournit les hooks suivants :
- hook_redirect_load() - lancé lors du chargement d'un tableau avec des redirections, vous permet d'y ajouter de nouveaux éléments,
- hook_redirect_load_by_source_alter() - utilisé pour modifier les redirections pour une adresse source donnée,
- hook_redirect_prepare() - change la forme d'une redirection donnée dans le panneau d'administration du module,
- hook_redirect_alter() - vous permet de modifier les paramètres d'une redirection juste avant qu'elle ne soit déclenchée.
En outre, le module Redirect fonctionne avec le module Pathauto. C'est un tandem très harmonieux pour gérer la création de redirections lors du changement d'alias de page.
Résumé
La facilité de création et de gestion des redirections est une caractéristique importante d'un CMS professionnel. Le module Redirect le fait très bien. C’est une solution stable qui a été développée au fil des ans. Je recommande de l'utiliser dans tout projet de développement Drupal.