Bien que la philosophie du Net soit la gratuité des informations, il est parfois nécessaire de masquer les chemins des
fichiers afin d'en réserver la consultation à une certaine population sans pour cela passer par des ACL côté serveur.
D'autre part, les URLs sous la forme fichier.asp?id=2&pg=3&qt=5 ne permettent pas de référencer facilement les
pages d'un site. J'ai été confronté au premier problème et, grâce à l'aide de notre grand manitou Didier, j'ai réussi à
le résoudre. Le but de cet article est de vous faire profiter de cette expérience.
Il a fallu tout d'abord comprendre le principe de l'URL Rewriting et, pour cela, aller lire quelques articles concernant
cette technique.
N'hésitez donc pas à y jeter un oeil avant de vous lancer dans l'aventure...
Bien sûr, une recherche sur Google m'a permis d'en savoir plus... et n'hésitez pas à y faire un crochet ;-)
Cette technique permet de transformer tout type d'URL en fonction d'une ou plusieurs expressions régulières. Elle est surtout
utilisée sur les serveurs Apache sur lesquels sa mise en place semble, d'après ce qu'on peut lire, assez facile...
Ainsi, ceci :
http://nom_site/truc/bidule/machin/chose
peut très bien charger cette page :
En cas de souci, allez directement sur le site.
Vous y trouverez un forum, une faq, la documentation et bien sûr la dernière version... hélas, tout cela en anglais.
L'installation, en validant les paramètres par défaut, s'effectue également sans aucun souci et les fichiers sont enregistrés
dans C:\Program Files\Helicon\ISAPI_Rewrite
Le dossier d'installation contient les fichiers suivants :
httpd.ini : fichier contenant les expressions régulières ;
httpd.parse.errors : fichier contenant les erreurs rencontrées ;
ISAPI_Rewrite.dll : la DLL qui effectue la transformation ;
RXTest.exe : programme permettant de tester les expressions régulières ;
un dossier Help contenant la documentation au format html.
La mise en application
La première chose à faire c'est savoir ce que l'on veut faire ;-)
Ouvrir le fichier httpd.ini et y mettre ses règles de substitution sous la forme :
RewriteRule URL_affichée URL_chargée [Options]
Un exemple vaut mieux qu'un long discours :
RewriteRule (.*)/download/(.*) $1/mon_dossier_a_moi/$2 [I]
Explications :
RewriteRule : tout simplement pour lui dire qu'il s'agit d'une règle à appliquer
(.*)/download/(.*) : URL à manipuler, c'est celle qui s'affiche (la fausse page)
(.*) : N'importe quoi
/download/ : Chaîne fixe
(.*) : N'importe quoi
$1/mon_dossier_a_moi/$2 : URL de substitution, c'est la page à charger (la vraie page)
$1 : 1er paramètre qui prendra la valeur du 1er N'importe quoi
/mon_dossier_a_moi/ : Chaîne fixe
$2 : 2ème paramètre qui prendra la valeur du 2ème N'importe quoi
[I] : Ignorer majuscules/minuscules
Donc :
http://truc/download/toto.zip
ira chercher la page :
http://truc/mon_dossier_a_moi/toto.zip
Et voilà, le tour est joué...
À vos claviers....
Et faîtes de bonnes manipulations....