2012-01-13 13 views
16

Devo applicare l'autenticazione HTTP solo nell'uso pubblico del sito Web, ma non lo applico sul mio localhost. Questo è il .htaccess che penso dovrebbe funzionare. Ma non funziona - mi chiede ancora utente/pass.
Cosa sto sbagliando?Autenticazione Apache eccetto localhost

SetEnvIf Remote_Addr ^127\.0\.0\.1$ develmode 
<IfDefine !develmode> 
    AuthType Basic 
    AuthName "ADMIN" 
    AuthUserFile /path/to/.htpasswd 
    Require valid-user 
</IfDefine> 

mod_setenvif abilitato.

+1

http://stackoverflow.com/questions/3908592/ht-access-ip- restrizione-e-htpasswd provano che – Ascherer

+0

hai provato 'SetEnvIf REMOTE_ADDR^127 \ .0 \ .0 \ 0,1 $ develmode = affermativa –

risposta

25

È necessario guardare le parole chiave order e satisfy. Di seguito è riportato un esempio di lavoro dal mio sito web. Per prima cosa diciamo che accettiamo l'IP o l'UTENTE. Quindi definiamo il percorso del file htpasswd e accettiamo qualsiasi utente valido da quel file. Infine definiamo quali indirizzi IP del client possono accedere al nostro web senza autenticazione (neghiamo tutti gli altri IP, in modo che debbano eseguire l'autenticazione tramite htpasswd).

 
# permit by USER || IP 
Satisfy any 
# USER 
AuthUserFile /var/www/munin/.htpasswd 
AuthGroupFile /dev/null 
AuthName "Password Protected Area" 
AuthType Basic 
require valid-user 
# IP 
order deny,allow 
deny from all 
allow from 11.22.33. 
+0

grazie mille, è lavorare ! – Martin

+0

E che non ci sia spazio dopo il ','! Apache dà un errore di 500 se si "nega, consenti". – guaka

14

In Apache 2.4, allow, deny e satisfy non sono più utilizzati, restrizione indirizzo IP è inoltre fatto con require ora:

AuthUserFile /path/to/.htpasswd 
AuthName "Restricted Access" 
AuthType Basic 
Require ip 127.0.0.1 
Require valid-user 

Se una delle direttive "richiedere" sono soddisfatte , la richiesta è consentita. Se si desidera richiedere entrambi, raggrupparli in un blocco <RequireAll>.

Per restrizione per l'accesso locale è possibile utilizzare la sintassi speciale Require local invece di Require ip 127.0.0.1

Per saperne di più:http://httpd.apache.org/docs/2.4/mod/mod_authz_core.html#require

Problemi correlati