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 ;-)