Aller au contenu

Pathauto

Pathauto génère automatiquement des alias d’URL pour le contenu :

Sans PathautoAvec Pathauto
/node/42/produits/t-shirt-blanc
/taxonomy/term/5/categories/vetements
/user/1/utilisateurs/admin
Fenêtre de terminal
# Installer (inclut Token comme dépendance)
ddev composer require drupal/pathauto
# Activer
ddev drush en pathauto -y

ConfigurationRecherche et métadonnéesAlias d’URLModèles

Ou directement : /admin/config/search/path/patterns

  1. Ajouter un modèle

    Cliquez sur + Ajouter un modèle Pathauto

  2. Configurer le modèle

    • Type de modèle : Contenu
    • Type de contenu : Produit
    • Libellé : Produits
    • Modèle de chemin : produits/[node:title]
  3. Sauvegarder

TokenDescriptionExemple
[node:title]Titre du contenut-shirt-blanc
[node:nid]ID du node42
[node:created:custom:Y]Année création2025
[node:author:name]Auteuradmin
TokenDescriptionExemple
[node:field_category:entity:name]Nom catégorievetements
[node:field_brand:entity:name]Nom marquenike
[term:name]Nom du termeaccessoires
[term:parent:name]Terme parentmode

Cliquez sur Parcourir les jetons disponibles dans le formulaire de modèle.

produits/[node:field_category:entity:name]/[node:title]

Résultat : /produits/vetements/t-shirt-blanc

blog/[node:created:custom:Y]/[node:created:custom:m]/[node:title]

Résultat : /blog/2025/01/nouvel-article

categories/[term:parent:name]/[term:name]

Résultat : /categories/mode/vetements

Ou plus simple :

categories/[term:name]
marques/[term:name]

Résultat : /marques/nike

ConfigurationRecherche et métadonnéesAlias d’URLParamètres

Caractère à utiliser : -
Transformer en minuscules : Oui
CaractèreAction
/Aucune action
:Supprimer
'Supprimer
?Supprimer
#Supprimer

Transformations automatiques :

OriginalRésultat
ée
àa
çc
üu

ConfigurationRecherche et métadonnéesAlias d’URLMise à jour en masse

  1. Sélectionner le type de contenu
  2. Cocher Régénérer les alias
  3. Cliquer sur Mettre à jour
Fenêtre de terminal
# Générer tous les alias
ddev drush pathauto:aliases-generate all
# Générer pour un type spécifique
ddev drush pathauto:aliases-generate node
# Générer pour les termes
ddev drush pathauto:aliases-generate taxonomy_term

Dans le formulaire d’édition du contenu :

  1. Ouvrir Paramètres du chemin d’URL
  2. Décocher Générer un alias automatique
  3. Saisir l’alias manuellement
  1. Alias manuel (si défini)
  2. Alias Pathauto (si modèle existe)
  3. Alias système (/node/42)

Installez Redirect pour gérer les anciennes URLs :

Fenêtre de terminal
ddev composer require drupal/redirect
ddev drush en redirect -y

Quand un titre change :

  • Ancien : /produits/tshirt-blanc
  • Nouveau : /produits/t-shirt-blanc-premium

Redirect crée automatiquement une redirection 301.

ConfigurationRecherche et métadonnéesRedirections

OptionValeur recommandée
Auto-redirectActivé
Code HTTP301 (permanent)
Conserver anciennes URLsOui
Fenêtre de terminal
ddev drush path:alias /node/42
Fenêtre de terminal
ddev drush sqlq "SELECT * FROM path_alias"

Cause : Pas de modèle correspondant

Solution :

  1. Vérifier le modèle existe
  2. Vérifier le type de contenu sélectionné
  3. Vider le cache
TypeModèleExemple
Produitboutique/[node:field_category:entity:name]/[node:title]/boutique/vetements/t-shirt
Articleblog/[node:created:custom:Y-m]/[node:title]/blog/2025-01/article
Catégoriecategories/[term:name]/categories/vetements
Marquemarques/[term:name]/marques/nike
Couleurcouleurs/[term:name]/couleurs/bleu
Tailletailles/[term:name]/tailles/xl
# Paramètres généraux
separator: "-"
case: lowercase
max_length: 100
transliterate: true
reduce_ascii: true
  • Pathauto installé et activé
  • Token installé (dépendance)
  • Modèle créé pour chaque type de contenu
  • Modèle créé pour les taxonomies
  • Translittération configurée
  • Redirect installé (optionnel mais recommandé)
  • Alias existants générés
  • Testé avec des contenus réels

Cause : Deux contenus génèrent le même alias (ex: même titre)

Solutions :

# Option 1 : Ajouter l'ID au modèle
produits/[node:field_category:entity:name]/[node:title]-[node:nid]
# Option 2 : Utiliser un champ unique (SKU)
produits/[node:field_sku]
# Option 3 : Ajouter un numéro auto-incrément (Pathauto le fait automatiquement)

Problème : Caractères accentués non transformés

Section intitulée « Problème : Caractères accentués non transformés »

Solution : Vérifier les paramètres de translittération

Fenêtre de terminal
# Vérifier la config
ddev drush config-get pathauto.settings transliterate
# Doit être TRUE

Causes possibles :

  1. Pas de modèle pour ce type de contenu
  2. Case “Générer automatiquement” décochée dans le formulaire
  3. Cache à vider

Solution :

Fenêtre de terminal
ddev drush cr
ddev drush pathauto:aliases-generate all
Fenêtre de terminal
# Compter les alias générés
ddev drush sqlq "SELECT COUNT(*) as total FROM path_alias"
# Voir les alias orphelins (contenu supprimé)
ddev drush sqlq "SELECT * FROM path_alias WHERE path NOT IN (SELECT CONCAT('/node/', nid) FROM node)"
# Nettoyer les alias orphelins
ddev drush pathauto:aliases-delete all
ddev drush pathauto:aliases-generate all

Pour les sites avec des milliers de contenus :

Fenêtre de terminal
# Générer par batch de 50
ddev drush pathauto:aliases-generate node --batch-size=50

URLs propres en place ! Optimisons le SEO avec Metatag.