Comment changer de réécriture de liens ?


précédentsommairesuivant

II. Travail préliminaire

II-A. Problématique

Générale

Étudions une situation pour illustrer tout cela. Je vais utiliser des dates fictives pour simuler l'écoulement du temps.

Le 23 octobre 2000, nous installons un forum phpBB non modifié. Nos pages ont des adresses du style :
  • viewtopic.php?t=[0-9]+
  • viewforum.php?f=[0-9]+
  • etc.
Le 13 avril 2004, nous désirons améliorer le référencement de ce forum auprès des moteurs de recherche. Nous installons donc une méthode de réécriture de liens qui transforme les liens de la manère suivante :
  • ftopic[0-9]+.html
  • forum[0-9]+.html
  • etc.
Le 23 octobre 2005, nous nous apercevons que nous pourrions ajouter des mots clefs à ces adresses. Ainsi, nous modifions la technique de réécriture pour obtenir :
  • sujet-[0-9]+,[0-9a-z-]+.html
  • forum-[0-9]+,[0-9a-z-]+.html
  • etc.

Ici, les [0-9]+ représentent les paramètres nécessaires au bon fonctionnement de phpBB.
Les [0-9a-z-]+ représentent les listes de mots clefs, qui sont des informations utiles uniquement pour le référencement (non pour le bon fonctionnement de phpBB). Ce sont en partie elles qui nous posent problème, malgré la raison évidente de leur présence.
La dernière situation illustre la méthode proposée dans le tutoriel précédent.

Le problème est que, tout au cours de la vie du forum, les utilisateurs ont posté des liens (dans le forum lui-même ou à l'extérieur). Cela a pu se produire entre chaque étape, nous avons donc certainement des liens écrits de trois manières différentes mais qui fonctionnent tous de manière équivalente. Ces liens ne sont pas gérés automatiquement par phpBB car ils sont traités comme de l'information plutôt que comme des liens. À ce titre, les adresses contenues dans les messages n'évoluent pas lorsque nous modifions la technique de réécriture de liens.
En conséquence, de tels liens redirigent vers le même contenu que des liens équivalents qui ont été réécrits. Cela nous met en situation de duplicate content et, tel que nous l'avons établi dans le tutoriel précédent, c'est très mauvais pour notre référencement. Il faut donc y remédier.

Schéma : différentes URLs pour le même résultat
Différentes URIs pour le même résultat


Il y a deux cas : les liens provenant de l'extérieur de notre site et ceux internes à notre site.

Liens externes

Ce sont des backlinks : il est évident que nous n'allons pas pouvoir tous les modifier. Peut-être sommes nous l'auteur de quelques-uns mais rien ne garantit que nous n'en oubliions aucun. De plus, il est fort probable que d'autres personnes aient copié ailleurs des liens de notre site, voire même que les moteurs de recherche se souviennent de ces anciennes adresses.
Les raisons sont nombreuses, le jugement est sans appel : il faut avertir les visiteurs utilisant des adresses obsolètes qu'ils doivent désormais utiliser les nouvelles.

Schéma : les liens sont restaurés à leur état initial avant d'être réécrits
Les liens sont restaurés à leur état initial avant d'être réécrits. Aucune page n'est transmise au navigateur tant qu'il n'a pas demandé l'adresse correcte.

Liens internes

Nous avons un certain contrôle sur le contenu de notre site. En réalité, nous pouvons masquer le fait qu'il y ait eu diverses méthodes de réécriture de liens.

En somme, il s'agit d'insérer une étape de réécriture de liens avant la réécriture finale des liens. La différence est que, cette fois, les liens réécrits ne parviendront pas jusqu'au navigateur. Au contraire, ils seront immédiatement à nouveau réécrits.
Pour cela, nous aurons simplement besoin d'une liste d'adresses à réécrire. Dans la réécriture complète de liens (l'autre tutoriel), nous avons besoin de déterminer des mots clefs et tout un tas de choses. Ici, l'objectif est justement de retrouver les adresses d'origine (donc de supprimer les informations ajoutées par une méthode antérieure d'URL Rewriting). Il ne sera pas nécessaire d'envoyer des requêtes à une base de données.

Schéma : les liens sont restaurés à leur état initial avant d'être réécrits
Les liens sont restaurés à leur état initial avant d'être réécrits. Aucune page n'est transmise au navigateur avant la fin du traitement.

II-B. Tour du propriétaire : que devons-nous changer ?

Nous allons commencer par identifier les URLs que nous devrons restaurer (les adresses de destination, en quelque sorte). Théoriquement, cela devrait beaucoup ressembler à ce que nous avons fait dans l'autre tutoriel (quoique dans le sens l'inverse). Je vais directement proposer une syntaxe prévue pour être utilisée dans la fonction preg_replace() (remplacement de chaînes au moyen d'une expression régulière). Cela nous simplifiera la tâche puisque cette syntaxe est déjà utilisée dans le fichier .htaccess.
Je vais continuer à prendre pour exemple un forum phpBB.

Chaque RewriteRule du fichier .htaccess nous sert donc à construire cette liste :
  • viewtopic.php?t=$1
  • viewforum.php?f=$1
  • etc.

Maintenant que nous savons où nous devons aller, il est temps de recenser les URLs à restaurer. Il s'agit de toutes les URLs qui ne sont pas au format standard de phpBB : nom du script + paramètres.

Voici quelques exemples d'adresses utilisées par certaines méthodes de réécriture de liens pour phpBB :
  • ftopic[0-9]+ pour les sujets
  • forum[0-9]+ pour les forums
  • etc.

précédentsommairesuivant

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Copyright © 2006 Guillaume Rossolini. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.