Bannière de NPC
  Trucs et Astuces pour BeOS -       Catégorie: Networking
 

Accueil

Alertes
Applications
Audio et Vidéo
Divers
Interface
Matériel
Réseaux
Terminal
Tracker

Infos Serveur

 

 

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
 

 

BeArchives.com Banner Exchange Network