Mais qu'est-ce que c'est l'URL-remachin ?

URL-rewriting... c'est de l'anglais et ça signifie réécriture d'URL (Youhhouu, l'architecte sait traduire l'anglais). Bon c'est bien beau une traduction, mais ça ne vous dit pas ce que c'est réellement. Donc il s'agit d'écrire l'adresse URL des pages Web différemment.

Avant de vous parler de ce que fait l'URL-rewriting, je dois vous expliquer ce qu'on appelle les paramètres d'adresse. Si vous faites un minimum attention sur les sites Web, souvent vous voyez l'adresse avec le format suivant : http://www.exemple.fr/page.php?truc=1&machin=fr-td&bidule=gdf884q47sd4858f... Tout ce qui est situé après le "?", ce sont les paramètres avec leur valeur. Dans le cas de "truc=1", "truc" est le nom du paramètre et "1" est sa valeur. Le "&" lui est le séparateur utilisé entre les différents paramètres.

Maintenant, l'URL-rewriting. Cette technologie consiste à afficher d'une façon différente les paramètres, à remodeler l'adresse Web, souvent pour la rendre plus compréhensible pour un humain. Elle ne se limite pas forcément aux paramètres, mais c'est généralement dans le but de les masquer qu'on l'utilise. Derrière ces adresses réécrites, le serveur retranscrit au format classique, afin qu'il puisse interpréter correctement la page demandée. Les URL-rewriting ne sont donc qu'une façade.

Si je reprends mon exemple précédent, avec l'URL-rewriting ça pourrait donner un truc du genre http://www.exemple.fr/page-1/fr-td/bidule-gdf884q47sd4858f... (évidement ce n'est qu'un exemple) et le serveur retranscrira cette URL-rewriting dans le format que je vous ai donné plus haut (http://www.exemple.fr/page.php?truc=1&machin=fr-td&bidule=gdf884q47sd4858f...) afin d'obtenir la bonne page. L'utilisateur lui ne voit toujours que la façade

L'URL-rewriting sur Poudlard12

Certains anciens se souviendront de ce qui existait pour les adresses du forum de la V4 : http://www.poudlard12.com/f-5-2.html, http://www.poudlard12.com/t-12-52-5.html. La première adresse menait à la page forum.php?id_forum=5&page=2, qui affichait la 2e page du forum avec le numéro 5. La seconde menait vers la page sujet.php?page=12&id_sujet=52&id_forum=5, qui affichait la 12e page du sujet 52 se trouvant dans le forum numéroté 5.

J'aurais pu reprendre cette notation avec la V5, mais je ne la trouvais pas très intuitive, son seul usage étant de masquer la page PHP et les paramètres en faisant croire que c'est une vraie page html. Je voulais donc faire mieux et les rendre plus compréhensives et intuitives pour les utilisateurs. Et c'est ce que je pense avoir réussi à faire.

Prenons un premier exemple sur le forum actuel : http://www.poudlard12.com/forum/forum.php?f=7&page=2 (il s'agit de la 2e page du Parc). Déjà masquons le nom de la page PHP "forum.php", puis remplaçons le premier paramètre en gardant le numéro de la section et en ajoutant son nom "Parc", ce qui donnera "7-Parc/". Enfin remplaçons le second paramètre par "page" suivie du numéro de la page, ce qui donne "page2/". (j'ajoute des / à la fin pour bien délimiter les différentes zones de l'adresse) Au final, on obtient l'adresse suivante : http://www.poudlard12.com/forum/7-Parc/page2/. (vous pouvez tester vous verrez que ça marche très bien et on obtient bien la même page)

Allez un second exemple avec un sujet : http://www.poudlard12.com/forum/sujet.php?t=1989&page=1#sommaire. Cette fois je vous épargne les détails, sachez juste que j'ajoute une partie concernant la section où se situe le sujet. Ainsi on saura dans quelle section se situe le sujet rien que par son adresse. Au final, on obtient cette adresse : http://www.poudlard12.com/forum/7-Parc/1989-Lettre à... (2e édition!)-/page1/#sommaire.

Voilà j'ai fini mon cours. N'hésitez pas à dire ce que vous en pensez. Ces nouveautés ne seront pas mise tous de suite sur Poudlard12, car je dois encore régler quelques détails importants pour que ça marche de façon optimale.