smr78 Posté 14 Avril 2009 Posté 14 Avril 2009 Bonjour, Question : comment paramétrer deux htaccess (un en dossier racine, l'autre en sous-répertoire) pour que ce soit toujours le premier htaccess qui agisse en premier, même si l'on cherche à accéder en premier au sous-répertoire? J'ai un site chez OVH qui est en accès restreint (donc je ne peux vous donner d'adresse!) qui contient un .htaccess1 à la racine, pour identifier tous les accédants, et un .htaccess2 dans un sous-répertoire d'administration (appelons le admin) qui sert à identifier les gestionnaires. Le premier htaccess en racine est ainsi : AuthUserFile /home/monsite/www/dossier_identifiants/fichiermotdepasse1AuthGroupFile /dev/nullAuthName "Entrez vos identifiants membre"AuthType Basic<Limit GET POST>require valid-user</Limit><Files .htaccess>Order allow,denyDeny from all</Files><Files *.inc>Order allow,denyDeny from allSatisfy All</Files><Files *.dtb>Order allow,denyDeny from allSatisfy All</Files>ErrorDocument 400 http://90plan.ovh.net/~monsite/error.php?err=400ErrorDocument 401 http://90plan.ovh.net/~monsite/error.php?err=401ErrorDocument 403 http://90plan.ovh.net/~monsite/error.php?err=403ErrorDocument 404 http://90plan.ovh.net/~monsite/error.php?err=404ErrorDocument 500 http://90plan.ovh.net/~monsite/error.php?err=500 Le deuxième htaccess en sous répertoire admin est ainsi : AuthUserFile /home/monsite/www/dossier_identifiants/fichiermotdepasse2AuthGroupFile /dev/nullAuthName "Entrez vos identifiants administrateur"AuthType Basic<Limit GET POST>require valid-user</Limit> Si un administrateur se connecte par l'adresse racine du site http://monsite.com tout se passe bien: le serveur demande les identifiants membre (une fois..) et si ok, affiche la page d'accueil lorsque l'administrateur essaie ensuite d'accéder au dossier admin : le serveur demande les identifiants administrateur (une fois..) et si ok, affiche la page d'accueil Mais si l'administrateur essaie d'accéder directement en premier au dossier admin : le serveur demande les identifiants administrateur (une fois..) et si ok, affiche la page d'accueil et le serveur demande les identifiants membre 4 fois! Si l'on tape 4 fois les identifiants membre correctement, tout est bon (mis à part que l'on a tapé 4 fois) Si l'on clique sur Annuler dans le formulaire d'identification membre et ce 4 fois de suite, on reste bien sur la page d'accueil d'admin mais à chaque essai de lire une nouvelle page, le formulaire d'identification membre se réaffiche et rebelote Si l'on tape une fois les identifiants membre et OK, le serveur redemande 3 fois les identifiants membre et ainsi de suite, il faut avoir tapé 4 fois les bons identifiants pour que tout soit bon. Je reviens donc à ma question, comment écrire les deux htaccess pour que ce soit le premier qui soit appelé ou bien que le deuxième (celui d'admin) renvoie sur le premier tant qu'il n'y a pas eu d'identification membre ou bien que le deuxième fasse les deux identifications? Ai-je dit assez et clairement? J'ai vu sur un autre post du site, que ce n'était pas bien d'avoir mis la règle d'erreur 401, car elle agit en premier et court-circuite le contrôle htaccess n°1, est-ce bien ce que cela veut dire? Une petite remarque, en accès client, seul FireFox affiche les demandes avec clairement les message Authname bien mis en évidence, alors qu'IE noie cela dans une phrase. Merci par avance pour toute aide ou info Cordialement
jcaron Posté 14 Avril 2009 Posté 14 Avril 2009 Un truc qui n'a rien à voir: <Limit GET POST> ne fait propablement pas du tout ce que tu crois. Lis la doc, tu risques d'avoir un choc (version courte: enlève-le). Pour revenir à ton problème, une partie de la réponse vient probablement du fait que tes pages d'admin contient des images (ou fichiers css, scripts...) qui sont dans "le reste" du site, non? Bizarre cependant qu'il te les demande 4 fois. Regarde les logs, utilise un sniffer (tcpdump, wireshark...) ou utilise curl -v en ligne de commande pour comprendre ce qui se passe. Une solution plus simple et élégante consiste probablement à avoir un fichier (htpasswd) unique avec tous les identifiants (un par personne), et à utiliser la notion de "groupe" (via AuthGroupFile) pour définir qui a le droit d'accéder à la partie admin ou pas (i.e. require group xxx au lieu de require valid-user). Jacques.
smr78 Posté 15 Avril 2009 Auteur Posté 15 Avril 2009 (modifié) Bonjour, Merci pour cette réponse rapide et très judicieuse. J'ai relu la spec de l'instruction LIMIT, pas très utile en effet. Je connaissais l'existence de l'instruction AuthGroupFile, mais je pensais que cela ne servait qu'à donner des droits différents sur une page ou répertoire donné. Je n'avais pas vu que cela pouvait donner des droits différents pour accéder à des répertoires différents selon le groupe. J'ai donc commencé à modifier mes codes et créer des groupes. En plus, ce qui est super est que les utilisateurs n'ont plus à s'identifier plusieurs fois selon les répertoires accédés! Re merci. Cordialement Modifié 15 Avril 2009 par olitax
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant