2011-05-14 11 views
18

Estoy intentando proteger con contraseña mi carpeta pública para que cualquiera que intente acceder externamente se le solicite que ingrese una contraseña pero no localmente. Hasta ahora lo he hecho funcionar usando 127.0.0.1 pero no localhost. Obviamente PODRÍA simplemente usar la dirección IP, pero es más el hecho de que quiero saber por qué no funciona. ¡No me gusta que me derroten!.htaccess contraseña de protección permite 127.0.0.1 pero no localhost

#Enable Password Protection 
AuthName "Password Protected Server" 
AuthType Basic 
AuthUserFile c:\xampp\apache\security\.htpasswd 
Require valid-user 
Order allow,deny 
Allow from localhost 
Allow from 127.0.0.1 
Satisfy Any 

Mi código hasta ahora es una acumulación de:

http://www.groovypost.com/howto/how-to/htaccess-password-protect-apache-website-security/

htaccess password protect but not on localhost

estoy corriendo XAMPP 1.7.3 en Windows 7, en caso de que ayuda.

¡Cualquier ayuda sería muy apreciada!

Respuesta

30

Suena como un problema de IPv6. Cuando se conecta al sitio con 127.0.0.1, Apache considera que la solicitud procede del host local IPv4 (127.0.0.1). Pero, al conectarse a localhost, Apache ve la solicitud como proveniente de IPv6 localhost (:: 1).

Si este es el problema, debería poder resolverlo reemplazando la línea Allow from localhost con una línea Allow from ::1.

+1

¡Qué héroe absoluto! Me encontré con algo similar a esto, pero lo dejé como localhost :: 1 no como una línea separada. ¡Gracias por decirlo! – tavocado

+1

+1 Excelente captura. – anubhava

+1

¡Gracias por aclarar eso! Sin embargo, para cualquier ser humano, "localhost", "127.0.0.1" y ":: 1" son meros alias. ¿Apache no facilita la identificación de estos alias? Ah, y por cierto, ¿podría agregar algo de información sobre cómo funciona esto con 'Require' en Apache 2.4+? – Domi

Cuestiones relacionadas