htaccess : Masquer des paramêtres dans la barre d'adresse
Supposons que vous soyez un grossiste et que vous ayez un script catalogue.php qui donnera une page dans laquelle le client pourra choisir (par exemple) tv ou hifi ou photo, et que, par conséquent, vous deviez écrire les liens suivants :
catalogue.php?param=tv ou
catalogue.php?param=hifi ou
catalogue.php?param=photo
On utilise le module mod_rewrite d'Apache : il permet de réécrire une URL entrante en fonction de conditions exprimées dans le fichier htaccess.
Vous pouvez masquer ces paramêtres en créant des répertoires fictifs en plaçant dans votre fichier htaccess :
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [L]
RewriteRule ^([^/]+)/$ catalogue.php?param=$1 [L]
avec
REQUEST_FILENAME représente le chemin réel sur le serveur.
-d is directory
L retourne au début de la règle avec l'URL courante (Last)
$1 permet d'accéder à ce qui a été défini à l'intérieur du groupe de parenthèses dans RewriteRule
(9 possibilités maxi : $1 ... $9 )
Ce qui fait que, par exemple, ce bout de code :
<a href='catalogue.php?param=photo'>PHOTO</a>
provoquera, aprés clic, l'affichage suivant dans la barre d'adresses : http://www.lesite.com/photo/