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
È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top