Développeur Php spécialisé Drupal, je propose mes services en indépendant pour tout développement web lié à Drupal (7 ou 8 !), Drupal Commerce, Drupal Commons ou encore Lightning.
Vous pouvez consulter mes réalisations de sites ou mes modules pour vous faire une idée de mes compétences et bien sûr le cas échéant, me contacter pour toute demande d'évaluation de projet.

Me contacter

Image

L'art de l'url rewriting sous Drupal avec pathauto

J'ai souvent constaté sur les projets Drupal (6 ou 7) des réglages souvent plus que limités, voir inexistant de pathauto pour une bonne utilisation des alias et surtout de pathauto. 

Pathauto fait parti des indispensables d'une installation Drupal, même si malheureusement il faudra attendre Drupal 9 pour l'avoir en natif dans le coeur de Drupal (Voir le ticket pathauto D8x). De ce fait apprendre à le régler et à l'utiliser est indispensable pour toute personne voulant se prétendre Drupalien !

Url rewriting

Une bonne installation Drupal sera bien sûr configuré avec la réécriture d'url activé. Le principe est simple, au lieu d'avoir un lien du type /?q=node/12 on aura /titre-de-mon-post. Le principal intérêt se situe au niveau du seo et de la lisibilité de son site.
Pour l'explication technique de mise en place, c'est sur Drupal.org qu'il faut voir.

Pathauto, token, transliteration, redirect

Nativement depuis Drupal 4.3 est inclus le module path qui permet de gérer ce principe de réécriture. On choisi sur chaque entité l'url "propre" correspondante.
Mais c'est un peu fastidieux, rien de tel qu'une petite automatisation de tout ça. C'est là qu'intervient Pathauto qui va s'occuper de générer automatiquement cette url selon un schéma confgurable (par exemple /catégorie/titre-du-post) et de le mettre à jour lors de la mise à jour du contenu.

Une bonne installation nécessite Pathauto, Token (dépendance) et surtout Transliteration. En bonus Redirect vous simplifiera la gestion des 301 et Pathologic s'occupera de mettre à jour vos liens dans le contenu rédactionnel.

Réglage de pathauto

Configuration

Deux réglages sont à réaliser, tout d'abord les options de pathauto depuis Configuration >> Recherche et metadonnées >> Alias d'URL >> Paramètres (admin/config/search/path/settings)

Le plus important va être de cocher "Transliterate prior to creating alias", qui va permettre d'utiliser transliteration pour nettoyer les caractères spéciaux de l'url. Puis configurer la liste des chaînes à supprimer, pour un site français :

a, à, ainsi, alors, après, aussi, avant, avec, car, certes, chez, comme, d, dans, de, dehors, depuis, derrière, des, donc, en, ensuite, envers, et, etc, ici, jusqu, jusque, l, la, le, les, là, mais, même, ni, or, ou, où, par, pendant, pour, près, sans, sauf, selon, sous, sur, tout, un, une, vers, vu

Et surtout bien choisir "Replace by separator" dans punctuation >> Single quotation marks (apostrophe), car la suppression des chaines n'intervient qu'après le traitement de ponctuation, ce qui fait que le réglage par défaut qui retire les apostrophes ne supprimera pas les articles ! Vous vous retrouverez alors avec des urls : /lart-lurl-rewriting
En revanche, avec le bon réglage de ponctuation le résultat sera /art-url-rewriting

Pour l'Action de mise à jour le mode par défaut de suppression est bon si vous installez bien redirect pour faire un suivi de vos 301. Si votre site contient déjà beaucoup de contenu l'option Créer un nouvel alias et laisser l'ancien alias fonctionnel est un bon choix dans un premier temps.

Patterns

Un autre réglage important de pathauto sera les schémas de réécriture depuis Configuration >> Recherche et metadonnées >> Alias d'URL >> Patterns (admin/config/search/path/patterns). Celui-ci vous permet de définir la forme de la réécriture et c'est là que token prends toute son importance puisqu'il va permettre d'utiliser des metas données, des champs du contenu ou même des variables globales.

Par défaut le réglage des noeuds par défaut n'est pas très pertinent : content/[node:title]
Ajouter un mot générique et une profondeur inutile, c'est pas très seo... Pour des pages importantes, on utilisera simplement [node:title], ce qui permetra d'avoir simplement le titre de l'article. Les contenu moins important pourront prendre de la profondeur, par exemple actu/[node:title]

Et donc c'est ce qu'on peut faire de mieux avec token ?? Bien sûr que non ! je veux que le premier niveau soit lié à une taxonomy, disons les tags des articles : [node:field_tags]/[node:title]
Je veux la date à la fin du titre : [node:title]-[current-date:custom:m]-[current-date:custom:Y]
Avec la date iso : [node:title]-[current-date:custom:Y]-[current-date:custom:m]-[current-date:custom:d]
Je veux une construction à partir de l'entrée de menu parente : [node:menu-link:parent:title]/[node:title]

Donc beaucoup de possibilité !

Régénération des alias

Lors de vos tests de schémas vous pourrez reconstruire les alias, mais pour cela avant une bonne reconstruction, rien de tel qu'une bonne suppression ! Il vous faudra donc d'abord effacer les alias de l'entité concerné depuis l'onglet "Supprimer les alias" puis utiliser la "mise à jour massive" avec plusieurs passes s'il le faut pour reconstruire les urls.

Attention, à chaque changement de pattern, si vous ne reconstruisez pas et que vous éditer un contenu avec un alias de l'ancien pattern, celui-ci restera actif et l'option d'urls automatique sur le contenu sera désactivé, il faudra  cocher la génération automatique pour l'activer et profiter du nouvel alias.

Bonus SEO

Avec tout ça votre contenu est propre, avec des urls très SEO (attention, limitez la profondeur des contenus importants pour votre référencement), il ne vous manque donc plus qu'à installer XML Sitemap et vous aurez une bonne base SEO. Je dis bien une base, ce n'est qu'un petit élément dans le SEO !

Étiquettes
seo drupal 7