Problème page d'erreur 401 et htpasswd

TsunaKy
Invité n'ayant pas de compte PHPfrance

17 févr. 2010, 19:14

Bonjour,

j'ai un petit problème avec une page d'erreur 401 ...

Je présente un peu le contexte.
Je dois faire un site de démo pour un ami mais il veut que tout le contenu reste absolument confidentiel jusqu'au lancement du site.
On a donc mis en place un .htaccess et un .htpasswd à la racine du site.
Nous avons également des pages d'erreur perso : 401, 404, ...

Tout marche normalement sauf au cas où le mot de passe saisi lors d'une visite sur le site est incorrect !
La fenêtre de saisie "clignote" et le navigateur plante ...

J'ai essayé avec un .htaccess et un .htpasswd qui fonctionnent très bien sur un autre de mes sites et le problème reste le même.

htaccess :

Code : Tout sélectionner

SetEnv SESSION_USE_TRANS_SID 0 AuthUserFile /xxx/xxx/www/perso/.htpasswd AuthGroupFile /dev/null AuthName "Accès Restreint" AuthType Basic <Limit GET POST> require valid-user </Limit> # page perso pour erreur de mot de passe sur page protegee ErrorDocument 401 /erreur401.php
htpasswd :

Code : Tout sélectionner

xxx:xxx
Est ce que le fait que la page d'erreur perso 401 soit à la racine peut en être la cause ?
Si oui, comment faire pour protéger le site à partir de la racine et tout de même avoir une page d'erreur personnalisé ?

Merci.

Eléphant du PHP | 245 Messages

18 févr. 2010, 11:59

Mais si c'est juste pour que ton ami puisse le visualiser, fais un truc tout simple :

Code : Tout sélectionner

AuthUserFile "C:\repertoire\autrerepertoire\.htpasswd" AuthName "Accès Restreint" AuthType Basic require valid-user ErrorDocument 401 http://www.monsite.com/erreur401.php
(Le chemin du authuserfile est paraméter pour du windows, mais il doit pouvoir s'adapter pour du linux)

Mais un chemin absolu en placant ton .htpassword dehors du htdocs si tu as la main sur ton serveur.

Tu peux enlèver les <limit>, car ceux ci signifient qu'on ne demandera la restriction que pour un GET ou un POST, (bon après tu me diras qu'il n'y a pas beaucoup d'autres methodes pour atteindre un formulaire mais bon...)

tu peux aussi mettre la redirection vers la page d'erreur en absolu

Et puis, c'est peut être pas la peine d'utiliser un groupe d'utilisateur, si ce n'est que pour ton pote .

En espérant que cela puisse t'aider

TsunaKy
Invité n'ayant pas de compte PHPfrance

18 févr. 2010, 15:06

Ok, merci des conseils, je vais essayer ça tout de suite !