Come rimuovere la protezione con password .htaccess da una sottodirectory
-
07-07-2019 - |
Domanda
Ho protetto con password il mio intero sito Web usando .htaccess
ma vorrei esporre una delle sottodirectory in modo che possa essere visualizzato senza password.
Come posso disabilitare la protezione con password htaccess per una sottodirectory? In particolare, qual è la sintassi .htaccess
.
Ecco il mio file .htaccess
che si trova nella radice del mio ftp.
AuthName "Site Administratrion" AuthUserFile /dir/.htpasswd AuthGroupFile /dev/null AuthName secure AuthType Basic require user username1 order allow,deny allow from all
Soluzione
Devi creare un nuovo file .htaccess
nella directory richiesta e includere la direttiva Soddisfa qualsiasi
in questo modo, fino ad Apache 2.3:
# allows any user to see this directory
Satisfy Any
La sintassi è cambiata in Apache 2.4, questo ha lo stesso effetto:
Require all granted
Altri suggerimenti
Aggiungendo alla risposta di RageZ, l'ho usato nelle Direttive del server:
<Directory /var/www/protected/>
AuthType Basic
AuthName "Production"
AuthUserFile /path/to/.htpasswd
Require valid-user
</Directory>
<Directory /var/www/protected/unprotected>
Satisfy Any
</Directory>
Impressionante. Grazie RageZ!
Crea semplicemente un nuovo .htaccess
nella sottodirectory desiderata con questa direttiva:
Consenti a tutti
Puoi limitarti al tuo IP solo con:
Consenti da x.x.x.x
Vedi: http://httpd.apache.org/docs/current/ mod / mod_access_compat.html
Devi aggiungere un altro file .htaccess alla sottodirectory che sovrascrive l'autenticazione. .htaccess procede in sequenza verso l'alto, ovvero guarderà nella cartella corrente, quindi salirà di livello e così via.
Ecco un modo per consentire la sottodirectory " foo " tramite l'autenticazione di base dal file .htaccess principale in un sito:
AuthType Basic
AuthName "Password Required"
AuthUserFile /dir/.htpasswd
Require expr %{REQUEST_URI} =~ m#^/foo/#
Require valid-user
Nota: funziona con Apache 2.4. Non ho confermato per le versioni precedenti.
Se si desidera impedire l'autenticazione htaccess a qualsiasi directoty specifico, è possibile utilizzare il seguente codice nel file htaccess in alto.
AuthType Basic
AuthName " Enter Pass "
AuthUserFile /home/public_html/.htpasswd / * PERCORSO AL TUO FILE .htpasswd * /
Richiede un utente valido
SetEnvIf Request_URI " (/ DIRECTORY_NAME /) $ " permettere
Ordine consentire, negare
Consenti da env = consentire
Inoltre, se si desidera impedire più directory, allora aggiungi
SetEnvIf Request_URI " (/ DIRECTORY_NAME /) $ " consentire
quante volte quante directory vuoi rimuovere dalla prevenzione htaccess.