la protection d'un problème répertoire à l'aide .htaccess
Question
J'ai créé un fichier .htaccess et .htpasswd, et les a stockés dans le dossier que je veux protéger et quand je naviguais dans ce dossier, on m'a demandé le nom d'utilisateur et passowrd (stockées dans le fichier .htpasswd), après son entrée le nom d'utilisateur et mot de passe, je suis arrivé une erreur 500 interne du serveur. Je l'ai utilisé les fichiers sur les deux localhost (Windows) et sur un serveur web (Linux, je suppose), tous deux ont donné le même résultat mentionné.
Ceci est mon fichier .htaccess:
<Files ~ "^\.(htaccess|htpasswd)$">
deny from all
</Files>
AuthUserFile /.htpasswd
AuthGroupFile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user
order deny,allow
La solution
Je doute que votre fichier .htpasswd
est vraiment situé à la racine même du système de fichiers du serveur avec /bin
, /usr
, /home
, et d'autres (plutôt que dans la partie du système de fichiers servi aux navigateurs Web).
Selon la documentation Apache ( 1 , 2 ), AuthUserFile
attend un chemin de fichier (comme si vous étiez ServerRoot, généralement /usr/apache
ou similaire, et en essayant de localiser le fichier à partir du shell Unix). Il ne peut pas être une URL, absolue ou relative. Corrigez votre chemin de fichier .htpasswd
en conséquence.
Notez que si possible, vous ne devriez pas mettre le fichier .htpasswd
dans un dossier de public_html
ou htdocs
, car toute erreur de configuration pourrait non seulement permettre un accès non autorisé aux fichiers que vous souhaitez protéger, mais aussi les noms d'utilisateur autorisés et mots de passe hachés.
Autres conseils
Utilisez un chemin d'hébergement absolu, par exemple:
/home/content/14/5267714/html/.htpasswd