htpasswd - Autenticación básica de Apache, excepto para aquellos permitidos
autenticación en apache (4)
Así es como se hace para Apache 2.4+ (ya que Satisfy Any
ya no es compatible).
<Directory /var/www/files/>
AuthType Basic
AuthName "Please enter your username and password"
AuthUserFile /var/www/files/.htpasswd
<RequireAny>
Require ip 22.33.44.55
Require valid-user
</RequireAny>
</Directory>
Si desea <RequireAny>
tanto la dirección IP -y- Login / Contraseña, cambie <RequireAny>
a <RequireAll>
Espero que esto ayude a alguien, ya que me tomó un tiempo darme cuenta.
Problema: Tengo algunos archivos en / var / www / files / que quiero que se acceda desde direcciones IP específicas SIN requerir usuario / contraseña. Sin embargo, me gustaría que cualquier otra dirección IP DEBE requerir inicio de sesión para obtener acceso.
Esto está en mi httpd.conf:
<Directory /var/www/files/>
Order deny,allow
Deny from all
Allow from 192.168
AuthUserFile /etc/apache2/basic.pwd
AuthName "Please enter username and password"
AuthType Basic
Require user valid-user
</Directory>
Pero, si lo entendí correctamente, esto significa que cualquier cliente que provenga de 192.168. * Tendrá acceso a ese directorio, PERO requerirá que un usuario válido vea su contenido. Y cualquier otra dirección IP será denegada. ¿derecho?
Gracias de antemano.
Si su servidor está detrás de un proxy, no puede confiar directamente en el Require ip
. Sin embargo, puede usar el Require env
:
<Directory /var/www/files/>
AuthType Basic
AuthName "Please enter your username and password"
AuthUserFile /var/www/files/.htpasswd
SetEnvIF X-Forwarded-For "22.33.44.55" AllowIP
<RequireAny>
Require env AllowIP
Require valid-user
</RequireAny>
</Directory>
editar : esto puede ser aceptado como respuesta, pero viejo. Para las nuevas instalaciones de Apache, use la respuesta de Brians aquí
Agregue esto: Satisfy Any
(lo que significa que cualquiera de esos 2 debe pasarse).
Y la sintaxis es:
Require valid-user
O:
Require user <userid>
SetEnvIF X-Forwarded-For "192.168.135.159" AllowIP
SetEnvIF X-Forwarded-For "192.168.135.135" AllowIP
AuthType Basic
AuthName "admin"
AuthUserFile "/var/www/domain.com/cms/.htpasswd"
<RequireAll>
Require env AllowIP
require valid-user
</RequireAll>
También compruebe muchas variantes. este código funciona con la versión 2.4 de apache 100%