2009-09-16 4 views
82

Ho protetto con password tutto il mio sito web usando .htaccess ma vorrei esporre una delle sottodirectory in modo che possa essere visualizzata senza password.Come rimuovere la protezione con password .htaccess da una sottodirectory

Come è possibile disabilitare la protezione della password htaccess per una sottodirectory? Specificamente, qual è la sintassi .htaccess.

Ecco il mio file .htaccess che viene inserito 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 
+4

Questo potrebbe essere più adatto per serverfault. – beggs

risposta

129

È necessario creare un nuovo .htaccess file nella directory richiesta ed includono la direttiva Satisfy any in questo modo:

# allows any user to see this directory 
Satisfy Any 

Si prega di notare che la sintassi cambiato in Apache 2.4, questo dovrebbe avere lo stesso effetto

Require all granted 
+6

Potrei solo farlo funzionare con "Permetti da tutti", non "Soddisfa qualsiasi". –

+0

@JessTelford buon uso dello snippet di codice. @RageZ +1 per la risposta che ha funzionato per me. Potresti modificare la risposta in modo super semplice e pubblicarla utilizzando il metodo del frammento di codice. Altrimenti qualcuno dovrà pensare 'grazie' –

+1

@JessTelford' Satisfy Any' sta funzionando ed è stato missato come 'Satisify Any'. Potrebbe essere questa la ragione per cui non ha funzionato per te. – BlueBird

1

È necessario aggiungere un altro file .htaccess nella sottodirectory che sostituisce l'autenticazione. .htaccess passa in cascata verso l'alto, cioè apparirà nella cartella corrente, quindi salirà di livello e così via.

+4

ti capita di conoscere la sintassi? Capisco il concetto ma non so come implementarlo. – justinl

+0

Se si desidera rimuovere quello corrente e non utilizzare autorizzazioni, è sufficiente sostituirlo con un file vuoto denominato .htaccess –

+3

@Garry che non è come funziona il .htaccess cascading, è necessario sovrascrivere esplicitamente le opzioni. –

31

aggiunta alla risposta di RageZ, ho usato questo nelle direttive 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!

7

È sufficiente creare un nuovo .htaccess nella sottodirectory desiderata con questa direttiva:

Allow from all

è possibile limitare al vostro IP solo con:

Allow from x.x.x.x

See: http://httpd.apache.org/docs/current/mod/mod_access_compat.html

+0

Ha funzionato quando ho inserito "Richiedi tutto concesso" invece di "Permetti da tutti" e "Soddisfa qualsiasi". Quei due non hanno funzionato per me. Sono su Apache 2.4. – endo64