L'URL rewriting ou réécriture d'URL à la volée est un sujet important pour un site web. Cette technique permet de réécrire des URL, cela veut dire que l'adresse dans le navigateur sera différente de celle définit par la technologie employée. Les objectifs de cette technique sont multiples :
- Améliorer le référencement du site
- Protection sur la technologie utilisée
- Simplifier la navigation des utilisateurs
- Gérer les redirections
- ....
Pour un site en "Drupal 7", l'adresse par défaut d'un article est définie de cette façon :
http://localhost/monSiteQuiLestAmoi/node/7
L'article traitant de fleur et de la "Pivoine de Chine", il est possible de transformer cette adresse par :
http://localhost/monSiteQuiLestAmoi/fleur/pivoine-de-chine
En regardant l'adresse on sait tout de suite quel sera le sujet de la page :
- Les fleurs
- La "Pivoine de Chine"
1. Configuration du serveur Apache
Apache propose un module pour la prise en charge du rewriting.
Ouvrez le fichier de configuration Apache, "httpd.conf", et assurez vous que le module "rewrite_module" est bien chargé par le serveur :
Nota : Si le caractère « # » est présent en début de ligne, le supprimer et relancer le serveur Apache.
Toujours dans le fichier de configuration d'Apache, ajoutez quelques lignes dans la définition du "VirtualHost" du site pour ne pas avoir dans l'URL générée par Drupal la chaîne de caractères "?q=...." :
Nota : les lignes utiles vont de 331 à 335.
2. Configuration de "Drupal 7"
Il faut maintenant faire en sorte que "Drupal 7" puisse utiliser la fonctionnalité proposée par le serveur Apache.
2.1 Installation des modules
Dans le gestionnaire de module de "Drupal 7", installez les modules :
- Token
URL : https://www.drupal.org/project/token - Pathauto
URL : https://www.drupal.org/project/pathauto
2.2 Configuration du module Token
Dans le menu "Configuration", block "Recherche et métadonnées", lien "URL simplifiées" pour s’assurer que le rewriting est possible via "Drupal 7" : la case "Activer les URL simplifiées" doit être cochée.
2.3 Configuration du module Pathauto
Dans le menu "Configuration", block "Recherche et métadonnées", lien "Alias URL" : dans l'onglet "Patterns " définir la structure des URL générées.
Chaque zone de texte permet de définir la structure des URL en fonction du type de contenu à afficher :
Dans l’exemple ci-dessus, le type de contenu ainsi que le titre du contenu sont spécifiés dans l’URL.
Le lien "Browse availabe tokens", permet de connaitre les mots clés pris en compte par ce mécanisme :
Dans l’onglet "Paramètres", il est possible de définir l’action pour les caractères non pris en compte dans la construction d’une URL. En bas de l’écran, en dépliant l’option "Punctuation" :
Trois actions possibles :
- Ne pas prendre en compte le caractère
- Remplacer le caractère par le séparateur par défaut
- Pendre en compte le caractère
Les deux derniers onglets de la configuration du module Pathauto, permettent de gérer les alias déjà créés :
- Delete aliases : permet de supprimer les alias des contenus existants.
Il est possible de préciser le type de contenu à supprimer. - Bulk generate : permet de générer les alias des contenus existants
Il est possible de préciser le type de contenu à générer.
Le premier onglet, "Lister", affiche la liste des alias créés. Cela permet de voir rapidement si la configuration du module est correcte ou non :
La structure est bonne, l’URL aura bien le type de contenu et le titre de celui-ci.
Ce qui se vérifie dans le navigateur
2.4 Problème de caractère accentué
Par contre pour le premier contenu de la liste, le titre étant "Bégonia ‘Million Kisses Amour’", l’accent de "Bégonia" est présent dans l’alias. La prise en compte par les outils de référencement ne sera peut être pas possible ainsi que l’affichage de la page par certains navigateurs.
Pour corriger cela il faut installer un nouveau module :
- Transliteration
URL : https://www.drupal.org/project/transliteration
Dans le menu "Configuration", block "Recherche et métadonnées", lien "Alias URL" : dans l’onglet "Paramètres", s’assurer que la case "Transliterate prior to creating alias" soit cochée.
En supprimant et recréant les alias on a bien le résultat attendu, aucun alias n’a de lettre accentuée :
Ce qui se vérifie dans le navigateur :
Bon article. La base du développement Drupal