Référencement naturel - Référencement d’un site dynamique : l’URL rewriting - 2 novembre 2007

Référencement d’un site dynamique : l’URL rewriting

Sylvain Lembert Fondateur Webmarketing & co'm

Les URL d’un site dynamique, si elles ne sont pas réécrites, ont recours à des caractères exotiques pour indiquer les paramètres. Si le nombre de paramètres est important, les moteurs pourront avoir des difficultés à indexer les pages, c’est pour cela que l’on doit avoir recours à l’URL rewriting…

Voici un exemple d’URL d’un site dynamique non optimisée :
http://www.monsite.com/index.php?cat=2&pays=36&saison=2

Votre histoire d'amour avec le SEO commence ici

La même URL réécrite :
http://www.monsite.com/sejour-maroc-ete-2-36-2.html

Avant toute chose, il faut vérifier que votre hébergeur autorise l’URL rewriting, ce qui est le cas dans la majorité des hébergements payants. Ensuite, le passage aux URL réécrites se fera en deux étapes. La première étant de modifier la façon d’écrire les liens dans les templates du site et la seconde étant d’écrire les règles de réécriture sur le fichier .htaccess

1 – Modification des liens présents dans le template :

Voici le code générant les URL de base dans le template :

<a href= »index.php?cat=<?php echo $cat; ?>&pays=<?php echo $pays; ?>&saison=<?php echo $saison; ?> »>Texte du lien</a>

Les variables $cat, $pays et $saison sont alimentées par des valeurs issues d’une table dans la base de données. Il faut extraire ces valeurs pour les traiter afin de les réutiliser pour l’url réécrite via des fonctions PHP classiques.

On va donc extraire, dans notre exemple la valeur $cat=2 (séjour), la valeur $pays=36 (maroc) et la valeur $saison=2 (été). Avec une fonction PHP, on va traiter ces valeurs pour supprimer les accents et autres caractères malvenus dans une URL. On va ensuite affecter ces valeurs traitées à de nouvelles variables. Par exemple $val_cat (sejour), $val_pays (maroc) et $val_saison (ete). Enfin, ces nouvelles variables seront utilisées pour générer les URL optimisées :

<?php
echo « <a href=\ » ».$val_cat. »-« .$val_pays. »-« .$val_saison.
« -« .$cat. »-« .$pays. »-« .$saison. ».html\ »>Texte du lien</a>
?>

Ce qui générera l’URL suivante :

<a href= »sejour-maroc-ete-2-36-2.html »>Texte du lien</a>

Il ne reste plus qu’à créer le fichier .htaccess pour que le serveur comprenne à quoi correspondent les URL une fois réécrites.

2 – Le fichier .htaccess prendra cette forme :

RewriteEngine on
RewriteRule ^(.*)-([0-9]*)-([0-9]*)-([0-9]*).html$ /index.php ?cat=$2&pays=$3&saison=$4 [L]

Quelques explications :

« RewriteEngine on » permet d’initialiser l’URL rewriting,
« RewriteRule » permet d’écrire une règle de rewriting,

La ligne RewriteRule comprend deux parties, la première comprise entre ^ et $ correspondant à l’expression régulière qui représente l’URL optimisée (règle d’optimisation). La seconde après $ et jusqu’à [L] correspondant au modèle d’URL réécrite à optimiser avec l’expression régulière.

$1 reprend la valeur du premier élément de l’expression régulière, $2 reprend la valeur du second élément de l’expression régulière et ainsi de suite.

(.*) expression régulière pouvant prendre n’importe quelle forme alphanumérique, dans notre exemple cela sera sejour-maroc-ete et correspond à $1 non utilisé ici dans l’url réécrite.

([0-9]*) expression régulière pouvant prendre n’importe quelle forme numérique.

Sommaire : Conseils et astuces pour réussir son référencement.
Post suivant : Création de contenus dédiés au référencement.
Pour suivre cette liste plus facilement, vous pouvez vous abonnez au flux RSS du blog !