Donc, avec une url standard, on aura un lien de la forme welcome.php?lang=fr. Avec l'url rewriting, on souhaitera bien entendu obtenir un lien de la forme welcome-fr.html.

Rien de plus simple, on a déjà noté nos url en variable dans le fichier conf.php, il suffit donc de leur rajouter le paramètre de langue qui se traduit par la variable $lang.

Voici la définition d'une variable correspondante au nom de la page dans le fichier conf.php (j'ai gardé le avec/sans url rewriting comme dans le billet précédent, la version sans rewriting étant commentée dans le code source)

Notez également qu'une des grandes différences avec le premier exemple, c'est qu'on ne peut pas utiliser define() car cela définit une constante. Dans la gestion des langues, les pages n'ont pas un nom "constant" puisque, la page d'accueil peut s'appeler welcome-fr.html, welcome-en.html ... Vous me suivez ?!

Sans la gestion des langues

// sans url rewriting
/*$page_d'accueil = "welcome.php";*/

// avec url rewriting actif
$page_d'accueil = "welcome.html";

Et le résultat avec la gestion de la langue

// sans url rewriting
/*$page_d'accueil = "welcome.php?lang=".$lang;*/

// avec url rewriting actif
$page_d'accueil = "welcome-".$lang.".html";

Ensuite, dans notre fichier .htaccess, on aura :

Sans la gestion de la langue

RewriteRule ^welcome.html$ welcome.php [QSA,L]

Et le résultat avec la gestion de la langue

RewriteRule ^welcome-([a-z]+)\.html$ welcome.php?lang=$1 [QSA,L]

Et voilà de belles url ;-)

La prochaine fois, je vous explique comment créer des "répertoires virtuels" (pas comme ceux d'Apache) avec la réécriture d'url.