URL Rewriting

On parle de plus en plus d’URL Rewriting. Mais concrètement c’est quoi et ça sert à quoi?

Et bien depuis que Google fait office de leader dans le domaine des moteurs de recherche, tout webmaster où même propriétaire de site ne parle que de référencement.
Et le référencement c’est quoi?

Si on prend l’exemple de Google, le référencement d’un site, c’est quand notre ami Google va faire un petit tour sur différents sites web pour scanner le contenu du site et extraire tout un tas de mots clés.

D’accord mais quel rapport avec l’URL rewriting.
Et bien le rapport vient du fait que Google se sert de différentes choses pour extraire les mots clés et leur attribuer plus ou moins de poids.
Il va par exemple scanner le titre du site, sa description, ses mots clés et son URL.
Et si vous avez une url du type : http://www.mon-site.com/dossier/index.php?article=3&page=5&encore_des_variables=xxx
Google a du mal à en extraire des mots clés voir certaines fois il s’en fout complètement.
C’est pourquoi il existe l’URL rewriting!

C’est bien tout ça mais comment ça marche???
il faut savoir qu’une URL se décompose en 5 parties bien distinctes
si on reprend notre URL de tout a l’heure voilà ce que ça donne:

http:// www.mon-site.com dossier index.php ?article=3&page=5&encore_des_variables=xxx
1 2 3 4 5

1 : Le protocole, il indique à votre navigateur quel est le moyen qu’il doit utiliser pour atteindre l’adresse donnée
2 :
le host : C’est la où est hébergé votre site (en gros)
3 : le path : Cela représente le chemin à suivre pour accéder à un fichier sur votre site. Il peut être constitué de plusieurs sous-dossiers.
4 :
le fichier : C’est le fichier que doit ouvrir votre navigateur.
5 :
la query : C’est la question, un certain nombre de paramètres et leurs valeurs passées par la méthode GET.

Ok c’est beau tout ça mais comment on fait pour avoir une jolie URL.
On va déjà voir si votre serveur web accepte l’URL rewriting (en espérant que vous ayez Apache).

Donc pour Apache il faut aller éditer le fichier httpd.conf et lui ajouter cette ligne dans la partie «Dynamic Shared Object (DSO) Support » :
LoadModule rewrite_module modules/mod_rewrite.so

Cela va permettre à Apache de savoir que vous allez utiliser la réécriture d’url. ( n’oubliez pas de redémarrer Apache )
Si votre site est sur un hébergement mutualisé, il faut voir avec votre hébergeur s’il a activé l’url rewriting.

Bon maintenant passons dans le vif du sujet!
Dans un premier temps il faut savoir comment vous allez construire vos URLs.

Disons que nous prenons ce modèle : http://www.mon-site.com/XX-article/XX-page
les XX correspondent aux identifiants de vos articles.
Donc dans votre site il va falloir que tous les liens du menu qui pointent vers les articles soient toujours de cette forme.

Maintenant il va falloir créer un fichier nommé ‘.htaccess’, dans celui-ci on va commencer par mettre ces lignes :

Options +FollowSymlinks # fait suivre les lien
Options -indexes # Permet de ne pas afficher au visiteur l’arborescence de fichiers et dossiers qui accéderaient directement à un dossier de votre site.
RewriteEngine on # Activation de l’URL rewriting

Maintenant attaquons nous au système de masque!
Comme vous l’avez vu on part d’une belle URL mais pour arriver à quoi? Parce que c’est bien beau d’avoir une jolie URL, mais si on ne peut pas récupérer les variables ça sert a rien??!

C’est là où les masques rentrent en action.
Reprenons notre belle URL :

http://www.mon-site.com/XX-article/XX-page

On va pouvoir extraire les données grâce au masque qui est composé d’expressions régulières. Dans cette article nous allons faire très simple, mais sachez que l’on peut faire des choses très complexes avec ces expressions régulières.
Donc nous ce que l’on veut c’est extraire les XX qui correspondent à des identifiants numériques.
RewriteRule ^([0-9]+)-article/([0-9]+)-page index.php?article=$1&page=$2 [L]

RewriteRule : mot-clé indispensable qui introduit chaque règle d’écriture.
^([0-9]+)-article/([0-9]+)-page : cette ligne définit quel paramètre doit être extrait de l’URL, dans notre cas il est représenté par ([0-9]+).
index.php?article=$1&page=$2 : représente la page ainsi que les paramètres qui doivent vraiment être appelés par Apache. La valeur $1 correspond à la première partie entre parenthèses.
[L] : Il s’agit d’un flag (drapeau) qui signifie que la règle est la dernière à être appliquée pour ce cas et que le module ne doit plus tenter de réécrire cette chaîne. En gros, on applique la règle une seule fois et c’est tout.
Il ne vous reste plus qu’à récupérer vos paramètres avec PHP, comme vous le faisiez avant ( $_GET[‘article’] )

Pour plus d’information sur les Expressions Régulières je vous recommande ce site qui leur est entièrement dédié http://www.expreg.com/index.php
Et pour en savoir encore plus sur l’URL Rewriting c’est ici : http://www.webmaster-hub.com/publication/Mod-rewrite-ou-la-reecriture-des.html

Tagués avec : ,
Publié dans Faites du Web

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*