Problème redirection page d'erreur du htaccess et htpasswd

leschanterelles

Nouveau WRInaute
Bonjour à tous,
Voilà des jours que je cherche en vain, alors je me décide à mettre un post...
J'ai une page d'administration sur mon site, protégée par htaccess / htpasswd. Tout marche.
Par contre, je souhaite que celui qui clique sur le lien de la page d'admin et qui se rend compte qu'il voulait pas ça, puisse faire annuler (dans la boite de dialogue de l'authentification) et que ça le redirige vers la page d'accueil. J'ai du coup rajouté la 1ère ligne dans mon code suivant du .htaccess
Code:
ErrorDocument 401 /index.php
AuthName "Page d'administration protégée"
AuthType Basic
AuthUserFile "/home/xxx/xxx/.htpasswd"
Require valid-user
Mais ce qui se passe, c'est que qui que ce soit qui veuille le connecter, ça le renvoi avec la page d'accueil : ça n'affiche plus la boite de dialogue d'authentification.
J'en déduit que soit il y a une erreur dans mon code htaccess, soit c'est toujours en erreur 401.
Pour info, je supprime bien les cookies avec chaque manip.
Ce que veut donc :
- faire afficher la boite de dialogue d'authentification à celui qui veut se connecter
- rediriger vers la page d'accueil s'il clique sur "annuler" de cette boite de dialogue.

Merci d'avance pour votre aide
Vincent
 

techron

WRInaute occasionnel
Essaie:
Code:
ErrorDocument 401 "Privé"
AuthName "Page d'administration protégée"
AuthType Basic
AuthUserFile "/home/xxx/xxx/.htpasswd"
Require valid-user
 

leschanterelles

Nouveau WRInaute
Merci Techron pour ta réponse,
J'ai essayé, et ça affiche bien le texte "Privé". Mais si je mentionne un fichier d'erreur ou ma page d'accueil du site, ça ne marche pas.
Peut être y a t'il une config à vérifier du httpd.conf par exemple, ou sur conf Apache?
Merci encore
Cordialement
Vincent
 

leschanterelles

Nouveau WRInaute
Alors j'ai un peu avancé, sans tout expliquer encore :
si je mets :
Code:
ErrorDocument 401 "Privé"
ça affiche bien "Privée" sur l'erreur 401
Si je mets
Code:
ErrorDocument 401 /erreur_401.html
Il trouve pas la page
Pour le chemin à mettre dans le .htaccess pour qu'il trouve la page d'erreur 401, c'est du RELATIF impérativement, mais faut il connaitre la syntaxe des chemins dans htaccess. Dans mon cas, le fichier erreur_401.html se trouve un répertoire mère, donc pour que ça marche il faut que je mette :
Code:
ErrorDocument 401 //erreur_401.html
Voilou, mais si je remplace mon fichier erreur_401.html par index.php qui se trouvent tous les 2 à la racine, ben ça marche plus : même problème qu'au début, ça ne me demande plus du tout le login et mdp, mais me redirige automatiquement sur la page index...
J'ai du coup bidouillé une page d'erreur avec une redirection javascript vers mon index.php. Ca marche, mais bon j'aimerai comprendre pourquoi je peux pas le faire directement du .htaccess
a+
 

techron

WRInaute occasionnel
Essayez et adaptez ca:

Testé sous cPanel dans le cas de la protection du fichier wp-login.php de WordPress.
Test: -http://www.phwinfo.com/wp-login.php

Code:
<files wp-login.php>
AuthName "Unauthorized access"
ErrorDocument 401 "accès non autorisé"
ErrorDocument 401 /401.shtml
AuthUserFile /home/..../motdepasse
</files>

Mot de passe sous le www donc invisible du web.


Contenu de la page 401.shtml :
Code:
<html>
<head>
<title>Redirection 401</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<META HTTP-EQUIV="refresh" content="0; url=http://www.phwinfo.com/">
</head>
<body  text="#000000">
</body>
</html>
 

leschanterelles

Nouveau WRInaute
Merci techron,
Oui ça marche ça aussi, merci. C'est un peu le même principe que la redirection javascript, sauf qu'elle est là en html.
Je m'en suis donc sorti comme ça.
Merci encore,
Vincent
 

Discussions similaires

Haut