Qu’est ce que l’URL Rewriting ?
L’URL Rewriting est une technique de réécriture d’URL destinée à proposer des adresses plus propres aux moteurs de recherche et aux internautes. Elle concerne essentiellement les sites Internet dynamiques qui contiennent beaucoup de paramètres dans leurs adresses.
Si l’on prend l’exemple d’un site dont les articles sont affichés à l’aide d’un fichier dossier.php, on obtient des adresses du type :
monsite.com/dossier.php?id_dossier=897&categorie=3
Ce type d’URL n’est pas toujours pris en compte (indexé) par les moteurs de recherche. Google recommande un maximum de deux paramètres dans les adresses, ce qui est quasiment mission impossible pour les sites dynamiques qui utilisent un système de pagination par exemple (dossier.php?id_dossier=897&categorie=3&page=7).
Vérifier si le mod_rewrite a été activé par votre hébergeur
Pour cela, il vous faut créer un fichier monfichier.php que vous chargez à la racine de votre site. Rendez-vous ensuite à l’adresse monsite.com/monfichier.php et vérifiez que mod_rewrite est sur ON.
Mettre en place la réécriture d’URL
Après avoir identifié toutes les formes d’URL de votre site, il vous faut définir la forme que vous souhaitez leur donner. Si l’on reprend notre précédant exemple, nous pouvons créer une adresse de la forme :
www.monsite.com/dossier-897-3.htmlOn s’aperçoit que cette forme est plus courte, plus propre et plus facilement mémorisable. Elle sera à coup sûr indexée par les moteurs de recherche.
Pour réécrire vos URL, créez un fichier nommé .htaccess et commencez par y entrer la ligne suivante :
RewriteEngine on
Cette ligne active l’utilisation du module de réécriture mod_rewrite.
Il ne vous reste alors qu’à réécrire vos URL grâce aux expressions régulières :
RewriteRule ^dossier-([0-9]+)-([0-9]+).html$
/dossier.php?id_dossier=$1&categorie=$2 [L]
^ : Début de l’URL à réécrire
[0-9]+ : Informe sur le type de variable, ici, elle est composée de chiffres.
- : Séparateur, à ne pas confondre avec _ . Il permet aux moteurs de recherche d’identifier séparément les mots clés présents dans vos URL.
$ : Met fin à l’url réécrite.
$1 : Renvoi la variable aux premières parenthèses (-([0-9]+) car id est un chiffre.
$2 : Renvoi la variable aux secondes parenthèses (-([0-9]+) qui contient aussi des chiffres.
[L] : Last met fin à la réécriture de l’URL en question.
Après avoir chargé le fichier htaccess à la racine de votre site, rendez-vous sur vos fichiers pour modifier vos URL. Voici un exemple d’URL dans une page PHP :
<a href="dossier.php?id_dossier=< ?php echo $id_dossier ; ?>&categorie=< ?php echo $catagorie ; ?>">
< ?php echo $titre ; ?></a>
Après réécriture, cela donne :
<a href="dossier.php-< ?php echo $id_dossier ; ?>-< ?php echo $categorie ; ?>.html">
<?php echo $titre; ?></a>
La réécriture de vos URL est à présent terminée, il vous suffit de tester leur bon fonctionnement en vous rendant sur votre site. Si vos liens renvoient une page introuvable, c’est que vous avez fait une erreur soit dans le fichier .htaccess, soit dans votre code html/php.