RobinHood: Comprendre le module DirectoryHandler
Si vous utilisez Robin Hood
comme serveur web, vous savez que sa configuration par défaut laisse les
utilisateurs voir le contenu des dossiers de votre site lorsqu'il n'y a pas de
fichier index.html dedans.
Si ce comportement ne vous plaît pas, vous pouvez créer un fichier
index.html vide, rediriger ce fichier dans chacun des dossiers que vous
voulez rendre inaccessible, ou vous pouvez supprimer le module DirectoryHandler.
Cependant, si vous choisissez cette dernière solution, vous verrez que toute
tentative d'accès à un dossier sans index bloquera le serveur dans
une boucle infinie, car celui-ci passe la requête au FileHandler, qui essaye
d'ajouter un slash ('/') à la fin de l'URL puis le renvoit au serveur, et ainsi de
suite.
Si vous ne voulez pas afficher le contenu de vos dossiers (et renvoyer un
message d'erreur 404 à la place), commentez la ligne suivante dans votre fichier de
configuration (virtual hosts) et relancez le serveur (rhdaemon):
VRes: pattern="*index.html" pattern="index" type="application/x-vnd.Be-directory" real=false;
Le but de cette ligne est de demander au DirectoryHandler d'afficher le contenu du
dossier quand il n'y a pas de fichier index.html dedans et d'autoriser
l'affichage du contenu du dossier racine même si un fichier index.html
est présent.
Joe Kloss, l'auteur de RobinHood, ajoute l'information suivante:
Si vous ne voulez pas que d'autres personnes puissent lire le contenu d'un dossier, i
suffit de retirer les droits d'exécution sur le dossier concerné pour les
"autres utilisateurs". Par exemple vous pouvez saisir dans un Terminal la commande
suivante:
chmod o-x monDossierPrivé
Si vous essayez d'accéder ensuite au contenu de ce dossier, le serveur vous
demandera l'identifiant et le mot de passe des services réseaux du serveur
(qui sont modifiables depuis l'onglet services du programme de configuration Network).
Remarque: La vieille version de RobinHood (1.0) utilisait le bit de lecture 'r'
au lieu du bit d'exécution 'x' pour acorder/refuser l'accès.
David Muszynski (david@technospider.com) ajoute cette information:
Pour implémenter correctement RHDirectoryHandler vous devez prêter une
attention particulière aux droits d'accès que vous assignez à chacun
des dossier contenus dans votre dossier racine web.
Si vous voulez que le contenu du dossier 'truc' soit visible, assurez-vous de ne
pas avoir de fichier index.html dedans, accordez les droits d'accès en
exécution aux "autres utilisateurs" (others) -- vous pouvez faire cela graphiquement
en utilisant le panneau Informations du Tracker.
Maintenant donc http://www.test.com/truc affichera le contenu de 'truc'.
Si au contraire vous ne voulez pas que le contenu du dossier soit visible retirez les
droits d'accès en exécution aux "autres utilisateurs" et ils seront
accueillis par une boîte de dialogue leur demandant un identifiant et un mot
de passe.
Vous devez aussi garder à l'esprit que quand vous travaillez avec RobinHood
http://www.test.com/truc demande quelque chose de tout à fait différent de
http://www.test.com/truc/ -- la première URL demande le contenu du
dossier 'truc', tandis que dans la seconde le slash ('/') est assimilé
au fichier index.html. Donc si vous avez des sites entiers dans des sous-dossiers
de votre racine web, assurez-vous que tous vos liens comportent le slash ('/') final.
Enfin, Joe Kloss a le dernier mot:
Si le module RHDirectoryHandler est supprimé, la requête sur le
dossier sera transmise au gestionnaire de fichiers. Celui-ci redirigera l'URL
en ajoutant un slash ('/') à la fin. Si le navigateur suit la redirection et
effectue une nouvelle demande, le pré-processeur d'URL ajoutera "index.html"
à la requête et essaiera de prendre en compte la nouvelle requête. Il
s'agit du comportement standard de la plupart des serveurs web et c'est la raison pour
laquelle votre navigateur semble ajouter automatiquement le slash ('/') aux noms de
dossiers quand vous ne le mettez pas.
Vous pourriez faire ceci de façon sélective avec RobinHood si vous ne
voulez pas supprimer le module de gestion de dossiers (Directory Handler). Vous
pouvez ajouter une entrée dans le fichier de configuration Virtual Hosts pour
chaque dossier dont l'utilisateur peut saisir l'URL manuellement et dont vous ne
voulez pas que le contenu soit visible sous forme de liste.
Si vous avez des dossiers "alice" et "bob/carole", la ligne suivante forcera
le serveur à passer les requêtes sur ces dossiers au module File
Handler au lieu du module Directory Handler. Le module File Handler redirigera
automatiquement les requêtes, tandis que tous les autres dossiers seront
pris en charge par le module Directory Handler.
VRes: pattern="alice" pattern="bob/carol" type="application/x-vnd.RHV.File" real=true;
Ce comportement pourrait être inversé si les priorités des modules
File Handler étaient échangées. Dans ce cas, le module File Handler
gérerait (et redirigerait) les dossiers et il vous faudrait des saisies
explicites pour les dossiers dont vous désirez voir le contenu.
Une telle inversion de priorités requiert que les modules soient recompilés.
Le serveur ne nécessite pas de redémarrage quand vous ajoutez ou retirez
un module de RobinHood. L'ordonnanceur des Modules (Module Roster[1])
surveille les n&oelig:euds du dossier des modules et charge ou décharge
automatiquement les modules à la volée sans redémarrage. Retirer le
module de gestion des dossiers (Directory Handler) du dossier des modules le
désactive sans aucun redémarrage.
Cela n'est pas vrai du fichier de configuration Virtual Hosts, mais c'est quelque chose
que je voulais faire. Je pourrais surveiller le fichier et le redécortiquer quand
il est modifié. Avec une telle fonctionnalité il n'y aurait jamais besoin
de redémarrer le serveur, excepté pour remplacer le programme par une
nouvelle version.
[1] Roster ne traduit habituellement pas par "ordonnanceur" mais par
"liste des corvées", cependant "liste" ne rend pas l'idée de quelque chose
d'actif.
Read this Tip in English here
Hier findest Du den Tip in Deutsch
Cette astuce est une contribution de Scot Hacker.
Site de l'auteur de cette astuce: http://www.birdhouse.org/beos/bible/.
Astuce traduite par: BeTrayer (Jean Schwerer).
Traduction
Française du Serveur BeTips © 2000 BeTrayer et équipe
|