La réécriture des url (alias url rewriting)
Par Yves Tannier le mardi, novembre 25 2003, 10:24 - Le PHP - Lien permanent
L'url rewriting est une des supers fonctions d'apache. En résumé, elle permet de réécrire les url à la volée. Exemple, au lieu d'avoir des url avec des paramétres à ralonge et difficle à retenir du style mapage.php?id=757576&pays=France&lang=fr&article=5789...
On aura fr/France/757576/5789/mapage.html
Celà, par exemple, optimise le référencement par les moteurs de recherche qui n'indexent que peu de paramétres dans les urls.
Cette technique peu également permettre "de faire croire" à l'internaute qu'il est dans son propre répertoire. Par exemple, pour un site que j'ai développé avec David il y a peu de temps, les internautes inscrit sur ce site devaient avoir l'impression d'avoir leur propre répertoire du style http://www.lesite.com/ftp/nomdelapersonne/
Solution : l'url rewriting qui nous permet de "réécrire" l'url http://www.lesite.com/fiche.php?nom=nomdelapersonne
en http://www.lesite.com/ftp/nomdelapersonne/
Pratique non ?! Voyons comment développer simplement un site intégrant ces fonctions ou permettant de les intégrer plus tard...
Tout d'abord, sachez que je ne vais pas vous faire un énième tutorial sur les .htaccess et sur les bases de l'url rewriting, mais plus l'explication concrète et directe de la conception d'un site utilisant ou non l'url rewriting.
Pour plus d'informations sur la mise en place des .htaccess et les bases de l'url rewriting, je vous invite à la lecture des très bon articles disponible sur le site webmaster-hub (vous en trouverez également un très bon sur WebRankInfo)
Article sur les .htaccess
Article sur les base de l'url rewriting
Articles de webrankinfo
Allez on mets les mains dans le cambouis !
Vous disposez sans doute dans l'organisation interne de votre site, de fichiers de configurations servant notamment à stocker des fonctions, les identifiants de connexion à votre base de données, des variables diverses et variées... De même, certain de ces fichiers sont appelés à toutes les pages. C'est donc logiquement dans un de ceux-là que nous allons simplement placer nos variables correspondantes aux liens de nos pages.
Voici un exemple d'un fichier config.php, cela est sans doute plus parlant :
//-------------------------------------------------- Sans Url rewriting
/*define("PAGE_RECHERCHE" ,"search.php");
define("PAGE_ACCUEIL" ,"welcome.php");
define("PAGE_INFO" ,"info.php");
define("PAGE_LIENS" ,"links.php");
define("PAGE_ACTU" ,"actu.php");
define("PAGE_LETTRE" ,"newsletter.php");
define("PAGE_ANNONCES" ,"annonces.php");
define("PAGE_INDEX" ,"index.php");
define("PAGE_TEXTE" ,"text.php");
define("PAGE_RESULT" ,"searchresult.php");*/
//-------------------------------------------------- Avec Url rewriting
define("PAGE_RECHERCHE" ,"search.html");
define("PAGE_ACCUEIL" ,"welcome.html");
define("PAGE_INFO" ,"presentation.html");
define("PAGE_LIENS" ,"links.html");
define("PAGE_ACTU" ,"news.html");
define("PAGE_LETTRE" ,"newsletter.html");
define("PAGE_ANNONCES" ,"classifieds.html");
define("PAGE_INDEX" ,"index.html");
define("PAGE_TEXTE" ,"text.html");
define("PAGE_RESULT" ,"searchresult.html");
Vous voyez ici qu'il est très simple de passer du mode "sans rewriting" à celui "avec rewriting" par un simple commentaire d'un des deux blocs
Dans les pages du site, il suffit simplement de mettre
<a href="<? echo PAGE_ACCUEIL; ?>">Page d'accueil</a>
Si tout ça est clair pour vous, voici la description du .htaccess dédié à cet exemple.
RewriteEngine on
RewriteRule ^search.html$ search.php [QSA,L]
RewriteRule ^welcome.html$ welcome.php [QSA,L]
RewriteRule ^presentation.html$ info.php [QSA,L]
RewriteRule ^links.html$ links.php [QSA,L]
RewriteRule ^news.html$ actu.php [QSA,L]
RewriteRule ^newsletter.html$ newsletter.php [QSA,L]
RewriteRule ^classifieds.html$ annonces.php [QSA,L]
RewriteRule ^index.html$ index.php [QSA,L]
RewriteRule ^searchresult.html$ searchresult.php [QSA,L]
Voilà le premier petit truc, la suite dans le prochain blog avec au programme l'url rewriting d'un site en plusieurs langues et le fameux coup des pseudos répertoires 
Commentaires
'vous en trouverez egalement un tres bon sur webrankinfo', je n'ai pas tou tà fait saisi ce point précis. à p&rt cela, billet très intéressant, comme souvent ! meri et continue !
Arf ! C'est que ce n'est pas très bien écrit. Ca veux juste dire qu'il y a des articles sur webmaster-hub et sur webrankinfo