URL rewriting ou comment optimiser les noms de ses pages
Référencement: techniques de référencement - par Cédric, le jeudi 31 août 2006 #4 :: rss
liens sponsorisés
liens sponsorisés
L'URL Rewriting est une fonctionnalité disponible sous Apache, LE serveur Web sous license GPL. La réécriture d'adresse - c'est ainsi que l'on traduirait URL rewriting en bon français - est une technique permettant de mettre en place de créer rapidement des pages propre pour l'indexation par les moteurs de recherche.
Si par exemple, vous êtes éditeur d'un site journalistique et que vous ayez développé une interface simple de rédaction des articles pour les journalistes qui travaillent pour vous, probablement que vous allez avoir des urls de ce genre :
http://www.site.be/article.php?id=34
Ce genre d'URL est vivement déconseillée car les moteurs comme Google n'indexent pas les pages ayant un paramètre nommé id.
Pire, vous pourriez même avoir: http://www.site.be/article.php?id=34&auteur=cedric&rubrique=23&lang=fr
C'est encore pire. Les moteurs encore une fois font la loi et dans ce cas précis, si on occulte le paramètre id, la page ne sera tout de même pas indexée vu que la majorité des moteurs excluent les pages ayant plus de deux paramètres. Vous allez me dire que vous ne pouviez pas faire autrement, que votre script deviendrait beaucoup trop compliqué.
N'ayez crainte, l'URL rewriting est là pour vous aider à mieux indexer vos pages.
Le principe est le suivant: que la page existe ou pas, le serveur Web reçoit bel et bien les requêtes de scripts. Jusque là rien de nouveau. Le mod_rewrite pour Apache permet de modifier le comportement du serveur dans le cas où une requête est effectuée. En effet, avant de rechercher la page, le serveur va vérifier si il n'a pas des instructions précises, comme celles ennoncées par l'URL rewriting.
Regardons de plus près une règle d'URL rewriting. (Les commentaires dans ce langage sont marqués par un # en début de ligne)
#On démarre le moteur de réécriture
RewriteEngine on
#On écrit la règle
RewriteRule article([0-9]+)\.htm$ searchEngine.php?id=$1 [L]
On remarque que la règle se décompose en deux parties:
RewriteRule article([0-9]+)\.htm$ searchEngine.php?id=$1 [L]
Nous avons article([0-9]+)\.htm$ et searchEngine.php?id=$1 [L]
La première partie correspond à la page demandée par l'Internaute (ou le bot). On y constate ce bloc : ([0-9]+) Ceci est une expression régulière compatible PERL.
Elle signifie littéralement "capturer ce qui va suivre: un nombre d'au moins un chiffre compris entre 0 et 9".
Les crochets permettent de définir une classe, où liste de valeur possible pour satisfaire le masque de recherche. Afin de simplifier l'écriture on détermine un interval, 0 à 9, qui s'écrit 0-9. De la même manière, on peut définir un interval alphabetique: a-z signifie, une lettre comprise entre a et z. Attention, les expressions régulières sont sensible à la casse.
Le caractère '+' signifie littéralement "au moins un élément correspondant au masque défini". Vous pouvez modifier ce critère en mettant par exemple le caractère '*' qui lui correspond à l'intervalle allant de 0 à l'infini, ou bien en définissant vous même l'interval à l'aide des accolades comme par exemple
([0-9]{1,5})
Le masque se limitera aux possibilitées allant de 1 à 5.
Les parenthèses définissent la zone à capturer. Si vous avez un bloc entre parenthèse, son contenu correspondant au masque de la parenthèse sera copié dans la variable $1. Si vous en avez une deuxième, son contenu sera dans $2 et ainsi de suite.
Ces techniques permettent d'améliorer grandement la qualité de vos urls qui semblent être un facteur prépondérant dans l'indexation de vos pages.
Comment faire sans htaccess ?
Bien que cette technique soit très facile à mettre en oeuvre, dans certains cas, il n'est pas possible d'installer le mod_rewrite. Par exemple, si vous êtes en mutualisé chez un hébergeur n'ayant pas activé cette fonction.
Comment faire alors ? Il existe une technique du même acabi, d'ailleurs utilisé par dotclear (l'interface de blog à travers laquelle ce site est présenté).
La technique permet de générer des URLs en arborescence, qu'on appelle génériquement "Path Mode".
Observez l'URL de ce billet. http://www.top-positions.be/index.php/2006/08/31/4-url-rewriting-ou-comment-optimiser-les-noms-de-ses-pages
On remarque que dans l'arborescence de l'URL, en lieu et place de ce qui semble être un dossier, il y a un fichier http://www.top-positions.be/index.php/2006/08/31/4-url-rewriting-ou-comment-optimiser-les-noms-de-ses-pages
Ceci est bel et bien un fichier. Lors de la recherche du fichier demandé par la requête, suit logiquement le chemin communiqué. Il appelle donc le script index.php.
Cependant, dans les variables globales, le nom du fichier demandé n'est pas index.php mais index.php/2006/08/31/4-url-rewriting-ou-comment-optimiser-les-noms-de-ses-pages
Cette chaine de caractères est disponible via la variable $_SERVER['REQUEST_URI'].
Il vous suffit tout simplement d'utiliser cette chaine pour en extraire les paramètres souhaités, en utilisant les fonctions de votre interprêteur de script. Par exemple en PHP, vous pouvez tout comme sous Apache et son langage htacess utiliser les expressions régulières compatibles PERL, via des fonctions comme ereg.
Notez toutefois que dans la mise en place de cette fonction, il est essentiel d'écrire toutes ses URLs en absolu, car le navigateur Internet, lui, pendant qu'il est réellement dans le répertoire index.php/2006/08/31/4/ et va donc rechercher les instances des images dans ce répertoire.
Ce genre de mise en place de 'réécriture d'adresse' est très efficace. Les blogs s'indexent de manière assez propre dans les moteurs. Cela reste donc une excellente alternative aux .htaccess
Commentaires
Ajouter un commentaire