2012-01-13 16 views
16

Necesito aplicar HTTP auth solo en uso público del sitio web, pero no lo aplico en mi servidor local. Este es el .htaccess que creo que debería funcionar. Pero no funciona, todavía me pide usuario/pase.
¿Qué estoy haciendo mal?Autenticación Apache excepto 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 está habilitado, por supuesto.

+1

http://stackoverflow.com/questions/3908592/ht-access-ip- restricción y htpasswd pretenden que – Ascherer

+0

¿Has probado 'SetEnvIf Remote_Addr^127 \ 0.0 \ 0.0 \ 0,1 $ = develmode yes' –

Respuesta

25

Debe mirar las palabras clave order y satisfy. El ejemplo de trabajo de mi sitio web está a continuación. Primero le decimos que aceptamos el IP o el USUARIO. Luego definimos la ruta del archivo htpasswd y aceptamos cualquier usuario válido de ese archivo. Finalmente, definimos qué direcciones IP del cliente pueden acceder a nuestra web sin auth (denegamos todas las demás direcciones IP, de modo que deben autenticarse a través de 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

muchas gracias, es trabajar ! – Martin

+0

¡Y que no haya espacio después del ','! Apache da un error 500 si haces 'deny, allow'. – guaka

14

En Apache 2.4, allow, deny y satisfy ya no se usan, restricción de direcciones IP también se realiza con require ahora:

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

Si se cumplen ninguna de las directivas "requieren" , la solicitud está permitida Si desea solicitar ambos, agrúpelos en un bloque <RequireAll>.

para la restricción al acceso local puede utilizar la sintaxis especial Require local en lugar de Require ip 127.0.0.1

Leer más:http://httpd.apache.org/docs/2.4/mod/mod_authz_core.html#require

Cuestiones relacionadas