lundi 10 février 2014

Initiation à l'URL rewriting ou réécriture d'URL

réécriture d'URL
URL rewriting
L' URL rewriting est la solution la plus efficace pour aider Google à indexer les pages d'un site web dynamique. Grâce à cette technique, les sites dynamiques ont des URL lisibles pour les moteurs de recherche. Le problème vient du fait qu' un site dynamique crée des milliers de pages web à la volée avec des URL complexes (à cause des caractères spéciaux présents) et longues (avec plusieurs variables dans l'URL dynamique).





Format d' URL d'un site dynamique

L' URL d'une page d'un site dynamique est souvent affichée ainsi :

http://www.monsitedynamique.com/articles/article.php?id=225&page=6rubrique=3

Cette URL dynamique peut se traduire de cette manière :

Sur le site "www.monsitedynamique.com" possède une page nommée "article.php". Ce nom est suivi d'un point d'interrogation. Enfin, vous trouvez des paramètres avec une valeur associée "id=225&page=6rubrique=3".

Raison d'une mauvaise indexation des sites dynamiques

Le souci vient de la capacité de créer presque à l'infini des pages web de la part d'un site dynamique.

Prenez des sites e-commerce comme PriceMinister ou Amazon. Ils possèdent chacun beaucoup de produits et un certain nombre d'options (délai d'envoi, couleur, taille, mode d'envoi, etc.). Vous arrivez vite à avoir des centaines de milliers voire même des millions de pages web.

Avantages et inconvénients de l'URL rewriting

L'URL rewriting peut prendre beaucoup de temps, mais une fois que les règles de réécriture des URL sont fondées, vous n'aurez plus besoin d'y revenir.

Elle permet de renforcer la sécurité d'un site dynamique.

Avec l'URL rewriting, vous pouvez cacher les noms des variables et les extensions des URL. Ainsi, vous avez la possibilité de ne pas divulguer le langage que vous utilisez (PHP, ASP, etc.).

Les étapes pour installer l'URL dynamique

Pour établir la réécriture d'URL, vous devez respecter différentes étapes :
  1. Vérifiez si votre hébergeur supporte la réécriture d'URL. Le souci peut venir du serveur.

  2. Avec un hébergeur gratuit, vous avez peu de chance de pouvoir faire de la réécriture d'URL. Optez pour un hébergeur payant, vous aurez alors plus d'actions réalisables pour bien référencer les pages web d'un site dynamique.

    Avec un serveur mutualisé, vous n'avez probablement pas la possibilité de réécrire les adresses de vos pages web. La sécurité de votre serveur peut en dépendre.

    Avec un serveur dédié, vous serez en mesure de configurer votre serveur comme bon vous semble.

  3. Définissez les formats d'URL.

  4. Pour mettre en place l'URL rewriting, vous devez rassembler les URL selon les formes communes d'URL.

    Une fois que les groupes d'URL sont définis, vous devez déterminer le nouveau format pour chacun d'entre eux. En ce qui concerne l'extension (.html, htm, php, etc.), il n'y a pas de règle.

    Il faut choisir quel sera le séparateur entre chaque partie d'une URL parmi les caractères définis comme séparateurs par Google.

      Les séparateurs à employer :

    • le tiret (-);
    • le point (.);
    • la virgule (,);
    • le slash (/);
    • le plus (+);
    • la barre verticale (|).

    Toutefois, il faut savoir que le point et le tiret posent moins de problème que les autres.

      Les caractères à ne pas utiliser comme séparateurs :

    • l'underscore (_);
    • le dièse (#);
    • l'esperluette (&);
    • l'arobase (@);
    • le dollar ($);
    • le point d'interrogation (?);
    • l'espace;
    • les caractères accentués.

    L'URL citée au début de cet article :

    http://www.monsitedynamique.com/articles/article.php?id=225&page=6rubrique=3

    Pourra se transformer ainsi :

    http://www.monsitedynamique.com/articles/article-225-6-3.html

  5. Allez dans le fichier .htaccess pour rédiger les règles de réécriture. Elles fourniront les informations nécessaires au serveur pour savoir interpréter la nouvelle URL de chaque groupe.

    • Quelques éléments à connaître pour écrire les règles de réécriture :

    • Une ligne débute par le dièse (#)lorsque vous avez des commentaires.

    • ^ indique le début de l'URL devant être réécrite.

    • $ indique la fin d'une règle de réécriture.

    • [a-zA-Z] se traduit par une autorisation d'utiliser tous les lettres de A à Z et de n'importe quelle casse.

    • [0-9] se traduit par "tous les chiffres sont possibles de 0 à 9".

    • [] indique une classe de caractères (chiffres, lettres...).

    • [-] inque que vous pouvez vous servir du tiret (-).

    • [L] se traduit par "Last" et précise au serveur qu'il peut s'arrêter là.

    • Un répertoire a un fichier .htaccess. Pas plus!

    • Options +FollowSymlinks est à placer avant les règles de réécriture d'URL. Cette instruction facultative indique au serveur les liens symboliques qu'il doit suivre.

    • RewriteEngine on se trouve avant les règles de réécriture d'URL. Cette instruction indique au serveur que vous voulez activer le module de réécriture d'URL.

    • Vous pouvez désactiver la réécriture d'URL pour comprendre d'où vient le souci si vous écrivez RewriteEngine off au lieu de RewriteEngine on.

    • Après Options +FollowSymlinks et RewriteEngine on, vous écrivez une suite de règles d'écriture.

    • Une règle doit se retrouver sur une ligne sauf si la règle est compliquée.

    Une règle de réécriture doit être rédigée de la manière suivante :

    RewriteRule ANCIENNE_URL NOUVELLE_URL

    ANCIENNE_URL est l'URL qui ne sera pas demandée en interne par votre serveur contrairement à l'NOUVELLE_URL.

  6. Après avoir modifié les formats d'URL et mis au point des règles d'écriture, il faut maintenant les appliquer à toutes les URL de votre site.

  7. Le temps du test de la réécriture est venu. Déplacez tous les fichiers ayant été modifiés, sans oublier le fichier .htaccess dans un navigateur.

Vous devez obtenir la même page en tout point avant et après avoir appliqué la réécriture d'URL.

L'utilisation d'un crawler, tel que Xenu's Link Sleuth, logiciel agissant comme Googlebot, un des spiders de Google, vous permettra de vérifier vos liens internes et mettre la main sur les pages introuvables. Le meilleur moyen de savoir si tous les changements apportés sont corrects.

Si le crawler trouve des liens morts c'est que vous n'avez pas fini votre travail. "Identifier le ou les problèmes" sera votre nouvelle mission.

Les redirections

Si les anciennes et les nouvelles URL sont présentes, les internautes et les bots ne sauront pas quelle est la bonne (nouvelle URL) de la mauvaise (l'ancienne URL). Les spiders peuvent croire qu'ils sont en présence de contenus dupliqués.

Un remède à ce problème est la redirection permanente ou redirection 301. Cette redirection doit se réaliser entre l'ancienne URL et la nouvelle.

Évitez la redirection 302 car elle est temporaire.

<?php
header ( "Status: 301 Moved Permanently", false, 301 );
header ( "Location: http://www.monsitedynamique.com/nouveau-dossier/nouveau-fichier.html );
exit ();
?>

Vous pouvez placer un fichier .htaccess à la racine du site et rediriger définitivement une page test/ancienne-page-produit.html vers une autre :

RedirectPermanent  /test/ancienne-page-produit.html  http://www.monsitedynamique.com/categorie/nouvelle-page.produit.html

Il existe une autre manière de rediriger une page :
RewriteRule  ^article-([0-9]+)-([0-9]+)-([0-9]+).html http://www.monsitedynamique.com/articles/article.php?id=$1&page=$2rubrique=$3 [R=301,L]

Personnalisation des pages d'erreur

Il serait bon de prévoir vos arrières au cas où une page reste introuvable.

Créez différents gabarits de page pour les codes d'états HTTP 403, 404 et 410 :
  • 403 : Le serveur ne veut pas traiter la demande. Votre serveur peut barrer la route au spider, et par conséquent, ce dernier ne pourra pas accéder à votre site.

  • 404 : Ce code indique que la page demandée est introuvable.

  • 410 : Il indique, lui aussi, que la page est introuvable. Toutefois, ce code d'état diffère du 404 car il précise que le contenu a été déplacé ou supprimé définitivement.

Aucun commentaire: