Domanda

Ho creato un file .htaccess e .htpasswd, e memorizzato nella cartella voglio proteggere e quando ho navigato a quella cartella, mi è stato chiesto il nome utente e passowrd (memorizzata nel file .htpasswd) dopo aver inserito il nome utente e la password, ho ottenuto un errore del server interno 500. Ho usato i file sia localhost (Windows) e su un server web (linux credo) sia dato lo stesso risultato menzionato.

questo è il mio file .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
È stato utile?

Soluzione

dubito che il file .htpasswd è davvero trova alla radice del file system del server insieme a /bin, /usr, /home, e altri (piuttosto che all'interno della parte del filesystem servito ai browser web).

Secondo la documentazione di Apache ( 1 , 2 ), AuthUserFile si aspetta un percorso di file (come se si fosse in ServerRoot, di solito /usr/apache o simili, e cercando di individuare il file dalla shell Unix). Non può essere un URL, assoluto o relativo. Correggere il percorso del file .htpasswd di conseguenza.

Si noti che, se possibile, non si dovrebbe mettere il file all'interno di una cartella .htpasswd public_html o htdocs, perché qualsiasi errore di configurazione potrebbe non solo permetterà l'accesso non autorizzato ai file che si desidera proteggere, ma anche i nomi utente e le password hash autorizzati.

Altri suggerimenti

Usa un percorso di hosting assoluto, ad esempio:

/home/content/14/5267714/html/.htpasswd
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top