Pathauto
This content is not available in your language yet.
🎯 Qu’est-ce que Pathauto ?
Section intitulée « 🎯 Qu’est-ce que Pathauto ? »Pathauto génère automatiquement des alias d’URL pour le contenu :
| Sans Pathauto | Avec Pathauto |
|---|---|
/node/42 | /produits/t-shirt-blanc |
/taxonomy/term/5 | /categories/vetements |
/user/1 | /utilisateurs/admin |
📦 Installation
Section intitulée « 📦 Installation »# Installer (inclut Token comme dépendance)ddev composer require drupal/pathauto
# Activerddev drush en pathauto -y⚙️ Configuration
Section intitulée « ⚙️ Configuration »Accès à la configuration
Section intitulée « Accès à la configuration »Configuration → Recherche et métadonnées → Alias d’URL → Modèles
Ou directement : /admin/config/search/path/patterns
Créer un modèle pour les produits
Section intitulée « Créer un modèle pour les produits »-
Ajouter un modèle
Cliquez sur + Ajouter un modèle Pathauto
-
Configurer le modèle
- Type de modèle : Contenu
- Type de contenu : Produit
- Libellé : Produits
- Modèle de chemin :
produits/[node:title]
-
Sauvegarder
🏷️ Tokens disponibles
Section intitulée « 🏷️ Tokens disponibles »Tokens de base
Section intitulée « Tokens de base »| Token | Description | Exemple |
|---|---|---|
[node:title] | Titre du contenu | t-shirt-blanc |
[node:nid] | ID du node | 42 |
[node:created:custom:Y] | Année création | 2025 |
[node:author:name] | Auteur | admin |
Tokens de taxonomie
Section intitulée « Tokens de taxonomie »| Token | Description | Exemple |
|---|---|---|
[node:field_category:entity:name] | Nom catégorie | vetements |
[node:field_brand:entity:name] | Nom marque | nike |
[term:name] | Nom du terme | accessoires |
[term:parent:name] | Terme parent | mode |
Voir tous les tokens
Section intitulée « Voir tous les tokens »Cliquez sur Parcourir les jetons disponibles dans le formulaire de modèle.
📋 Modèles TailStore
Section intitulée « 📋 Modèles TailStore »Produits
Section intitulée « Produits »produits/[node:field_category:entity:name]/[node:title]Résultat : /produits/vetements/t-shirt-blanc
Articles de blog
Section intitulée « Articles de blog »blog/[node:created:custom:Y]/[node:created:custom:m]/[node:title]Résultat : /blog/2025/01/nouvel-article
Catégories (taxonomie)
Section intitulée « Catégories (taxonomie) »categories/[term:parent:name]/[term:name]Résultat : /categories/mode/vetements
Ou plus simple :
categories/[term:name]marques/[term:name]Résultat : /marques/nike
🔧 Paramètres avancés
Section intitulée « 🔧 Paramètres avancés »Configuration générale
Section intitulée « Configuration générale »Configuration → Recherche et métadonnées → Alias d’URL → Paramètres
Séparateur de mots
Section intitulée « Séparateur de mots »Caractère à utiliser : -Transformer en minuscules : OuiPonctuation
Section intitulée « Ponctuation »| Caractère | Action |
|---|---|
/ | Aucune action |
: | Supprimer |
' | Supprimer |
? | Supprimer |
# | Supprimer |
Caractères translittérés
Section intitulée « Caractères translittérés »Transformations automatiques :
| Original | Résultat |
|---|---|
é | e |
à | a |
ç | c |
ü | u |
🔄 Génération en masse
Section intitulée « 🔄 Génération en masse »Générer les alias existants
Section intitulée « Générer les alias existants »Configuration → Recherche et métadonnées → Alias d’URL → Mise à jour en masse
- Sélectionner le type de contenu
- Cocher Régénérer les alias
- Cliquer sur Mettre à jour
Avec Drush
Section intitulée « Avec Drush »# Générer tous les aliasddev drush pathauto:aliases-generate all
# Générer pour un type spécifiqueddev drush pathauto:aliases-generate node
# Générer pour les termesddev drush pathauto:aliases-generate taxonomy_term📝 Alias manuels
Section intitulée « 📝 Alias manuels »Désactiver pour un contenu
Section intitulée « Désactiver pour un contenu »Dans le formulaire d’édition du contenu :
- Ouvrir Paramètres du chemin d’URL
- Décocher Générer un alias automatique
- Saisir l’alias manuellement
Priorité
Section intitulée « Priorité »- Alias manuel (si défini)
- Alias Pathauto (si modèle existe)
- Alias système (
/node/42)
🔀 Module Redirect
Section intitulée « 🔀 Module Redirect »Installez Redirect pour gérer les anciennes URLs :
ddev composer require drupal/redirectddev drush en redirect -yRedirection automatique
Section intitulée « Redirection automatique »Quand un titre change :
- Ancien :
/produits/tshirt-blanc - Nouveau :
/produits/t-shirt-blanc-premium
Redirect crée automatiquement une redirection 301.
Configuration
Section intitulée « Configuration »Configuration → Recherche et métadonnées → Redirections
| Option | Valeur recommandée |
|---|---|
| Auto-redirect | Activé |
| Code HTTP | 301 (permanent) |
| Conserver anciennes URLs | Oui |
Voir les alias d’un contenu
Section intitulée « Voir les alias d’un contenu »ddev drush path:alias /node/42Lister tous les alias
Section intitulée « Lister tous les alias »ddev drush sqlq "SELECT * FROM path_alias"Problèmes courants
Section intitulée « Problèmes courants »Cause : Pas de modèle correspondant
Solution :
- Vérifier le modèle existe
- Vérifier le type de contenu sélectionné
- Vider le cache
Cause : Ponctuation non configurée
Solution :
- Paramètres → Ponctuation
- Configurer chaque caractère
- Régénérer les alias
Cause : Même titre pour plusieurs contenus
Solution :
- Ajouter
[node:nid]au modèle - Ou utiliser des champs uniques
produits/[node:field_sku]/[node:title]📊 Modèles complets TailStore
Section intitulée « 📊 Modèles complets TailStore »Tous les modèles
Section intitulée « Tous les modèles »| Type | Modèle | Exemple |
|---|---|---|
| Produit | boutique/[node:field_category:entity:name]/[node:title] | /boutique/vetements/t-shirt |
| Article | blog/[node:created:custom:Y-m]/[node:title] | /blog/2025-01/article |
| Catégorie | categories/[term:name] | /categories/vetements |
| Marque | marques/[term:name] | /marques/nike |
| Couleur | couleurs/[term:name] | /couleurs/bleu |
| Taille | tailles/[term:name] | /tailles/xl |
Configuration recommandée
Section intitulée « Configuration recommandée »# Paramètres générauxseparator: "-"case: lowercasemax_length: 100transliterate: truereduce_ascii: true✅ Checklist
Section intitulée « ✅ Checklist »- 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
🛠️ Erreurs courantes et solutions
Section intitulée « 🛠️ Erreurs courantes et solutions »Erreur : “Alias already exists”
Section intitulée « Erreur : “Alias already exists” »Cause : Deux contenus génèrent le même alias (ex: même titre)
Solutions :
# Option 1 : Ajouter l'ID au modèleproduits/[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
# Vérifier la configddev drush config-get pathauto.settings transliterate
# Doit être TRUEAlias non générés automatiquement
Section intitulée « Alias non générés automatiquement »Causes possibles :
- Pas de modèle pour ce type de contenu
- Case “Générer automatiquement” décochée dans le formulaire
- Cache à vider
Solution :
ddev drush crddev drush pathauto:aliases-generate all🔧 Maintenance
Section intitulée « 🔧 Maintenance »Audit des alias
Section intitulée « Audit des alias »# Compter les alias générésddev 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 orphelinsddev drush pathauto:aliases-delete allddev drush pathauto:aliases-generate allPerformance
Section intitulée « Performance »Pour les sites avec des milliers de contenus :
# Générer par batch de 50ddev drush pathauto:aliases-generate node --batch-size=50🔜 Prochaine étape
Section intitulée « 🔜 Prochaine étape »URLs propres en place ! Optimisons le SEO avec Metatag.