L’url rewriting, cette technique qui consiste à créer des pages virtuelles avec un url tout mignon et qui redirige vers de vraies pages avec un url tout moche, est particulièrement intéressante pour 2 raisons :
- Se faire bien voir des moteurs de recherches. L’url est très utilisé par les robots d’indexation, par conséquent, si elle contient déjà des mots clefs importants, c’est tout bon !
- Améliorer l’expérience de ses visiteurs. En effet, on est plus enclin à cliquer sur un lien http://exemple.fr/presentation-url-rewriting.html que sur http://exemple.fr/index.php?id=1254879, tout simplement parce que l’on sait, a priori, de quoi est censé parler la page sur lequel on va se diriger.
Pour réécrire ses urls, il suffit de créer un fichier .htaccess
à la racine de son serveur et d’y écrire quelques lignes pour expliquer à Apache comment rediriger certaines pages. Quelques connaissances en expressions régulières peuvent servir ! Et il faut que le mode url-rewriting de votre serveur Apache soit activé. (ce qui n’est pas le cas partout, mais il y a des techniques pour réécrire quand même ses urls, notamment sur un serveur hébergé par Free) Et ce fichier .htaccess
peut ressembler à ça :
RewriteEngine on RewriteBase /site/front ################################################################################
#
# REDIRECTION DES PAGES VIRTUELLES RATTACHEES A DES RUBRIQUES :
#
# Exemple de redirection: scooter-rouge_15.php => index.php?id=15
#
# PS: 1. Le - (tiret) sert à séparer les mots dans un nom de page
# Le _ (underscore) sert à distinguer la page de la rubrique.
# Exemple: scooter-rouge-08_15.php OU scooter-rouge-fiche_15.php
#
# 2. Sur certain serveur d'hebergement, il faut forcer l'ajout de "/"
# devant la 2éme partie des régles: /index.php?id=$2 [L]
#
# Solution : tester avec la règle située à la fin de ce fichier
# ################################################################################
# Règles pour l'affichage des pages articles
RewriteRule ^([a-z,A-Z,0-9,\-]+).html$ index.php?RID=10&kw=$1 [L]
Cela étant dit, je pense que la meilleur manière de réécrire des urls est d’utiliser le titre de la page et seulement le titre de la page. Je m’explique en prenant comme exemple une page index.php?id=42
qui a pour titre (titre de la page, ou titre d’un article) « Hello Word! » :
- La méthode la plus courante est d’utiliser la forme suivante : hello-world_42.html. C’est déjà pas mal, et c’est même plus que bien ! C’est de loin ce qu’il y a de plus simple aussi.
- La méthode la plus performante mais légèrement plus délicate à mettre en place est d’utiliser la forme qui suit : hello-world.html. Pour la mettre en place, il suffit d’enregistrer le titre rewrité de chacune de ses pages dans sa base de données. Ces titres rewrités remplacent alors les id des pages. Et puis voilà, le tour est joué ! Bien sûr, pour éviter que 2 pages ayant un titre identique pointent vers le même lien, il est nécessaire que la fonction de rewritage du titre se charge de vérifier que ce dernier n’existe pas encore, et si ce n’était pas le cas, de lui ajouter un id ou je ne sais quoi. Bref, l’idée est là ! Et tant qu’à faire, cette fonction de parsage se chargera de supprimer ou de remplacer les caractères accentués, les majuscules, les espaces, les mots de moins de 2 ou 3 lettres (sauf cas particuliers), … Un truc qui ne garde que les mots clefs réellement important quoi.
Bon, sur ce, je retourne rewrité des pages !