Afin d'augmenter la visibilité d'un site sur internet via les moteurs de recherche, il peut être intéressant de faire appel à
une fonction d'Apache appelée
mod_rewrite. Ce module qui n'est pas nativement activé permet de faire de la redirection
d'URL de façon transparente pour le browser ou en renvoyant un code HTTP 302 -Object Moved-. Outre le fait de n'utiliser que
des URL propres ( sans paramètres
&x=y?a=z ), l'indexation des moteurs de recherche est facilitée, en effet certains
n'accèdent pas aux adresses comportant trop de paramètres.
Ce tutorial a été réalisé sur un serveur web apache 2.0, la démarche est légèrement différente pour une 1.3x. La configuration
décrite ci-dessous est appliquée sur le serveur web ou est hébergé ce site, vous pouvez le voir en action en sélectionnant un
article, une catégorie, le flux RSS,...
La première étape consiste à décommenter la ligne suivante dans le fichier httpd.conf d'apache :
LoadModule rewrite_module modules/mod_rewrite.so
Il faut ensuite redémarrer apache afin que cette modification soit prise en compte, mais attendez un peu, nous allons définire
quelques règles de réécriture. Pour écrire ces règles, deux méthodes sont possibles :
- Les placer dans un fichier .htaccess
- Utiliser la directive <Directory.. dans le fichier httpd.conf
Nous allons créer une règle qui va rediriger l'adresse
http://www.monsite.com/rss vers le fichier
http://www.monsite.com/rss.php.
L'intéret? Purement esthétique :o) Pour ce faire, ajoutez les lignes suivantes à la fin de votre fichier httpd.conf :
<Directory X:/Path/To/My/Webroot/>
<IfModule mor_rewrite.c>
RewriteEngine on
Options +FollowSymlinks
RewriteRule ^rss$ rss.php [last]
</IfModule>
</directory>
La directive
RewriteRule accèpte des expressions régulières de type POSIX ( version d'apache supérieur à 1.2.x ). Vous pouvez trouver plusieurs
tutoriaux sur internet dont celui ci :
Regular expression - Small tutorial
que j'utilise. Il est important de mettre le flag
[last] ou
[l] à la fin de la dernière règle de réécriture. Dans ce mode, le navigateur ne se rends pas compte de la redirection.
Vous pouvez également envoyer un code HTTP 302 en ajoutant le flag
[redirect], bien que cette solution soit moins esthétique elle a l'avantage de permettre la redirection
vers un autre serveur web.
Ce premier exemple n'avait qu'un but esthétique, nous allons maintenant voir comment appliquer la réécriture sur des URLs avec paramètres. Prenons par exemple
la page
article.php?ArticleID={0123-4540-4564-4564}. Son potentiel de référencement -par mot clef- sur un moteur de recherche est quasiment nul. En ajoutant à votre
base de données d'articles une colonne "ShortName" ou vous mettrez le titre de votre article épuré de ses caractères spéciaux ( les accents, les espaces, ... ) nous
pourrons créer une adresse virtuelle
article-le-nom-de-l-article.html qui redirigera de façon transparente vers la page
article.php?ShortName=le-nom-de-l-article
ou ShortName serait la nouvelle colonne. Essayez d'éviter le caractère _ ( underscore ) qui ne permet pas de séparer les mots clefs. L'indexation des moteurs de recherche sera
améliorée par les mots clef de l'URL. Le code associé devient :
<Directory X:/Path/To/My/Webroot/>
<IfModule mor_rewrite.c>
RewriteEngine on
Options +FollowSymlinks
RewriteRule ^article-(.+)\.html$ article.php?ShortName=$1
RewriteRule ^rss$ rss.php [last]
</IfModule>
</directory>
L'expression régulière
^article-(.+)\.html$ permet d'isoler le nom de l'article et de le mettre dans la variable $1 qui est ensuite utilisée afin de réécrire
l'adresse. Il est possible d'isoler plusieurs variables en modifiant l'expression régulière..
Le plus compliqué reste de définir un plan d'adressage pour votre site qui ne nécessite pas de repenser votre base de données ou vos pages existantes. Ne perdez
pas de vue que moins votre site comportera de pages avec paramètres ( &,? ) plus sa visibilité sur les moteurs de recherche sera grande.
Liens Complémentaires