Notas que he hecho personalmetne en el pasado.
Con Apache 2.4, también se puede configurar ACL con Allow Deny utilizando mod_access_compat.
Reescritura de ACL de Apache2.2 a 2.4
Permitir todo
- Apache 2.2
<Directory "/home/www">
Order allow,deny
Allow from all
</Directory>
- Apache 2.4
<Directory "/home/www">
Require all granted
</Directory>
Denegar todo
- Apache 2.2
<Directory "/home/www">
Order deny,allow
Deny from all
</Directory>
- Apache 2.4
<Directory "/home/www">
Require all denied
</Directory>
Permitir una dirección IP específica
- Apache 2.2
<Location /admin>
Order allow,deny
Deny from all
Allow from 127.0.0.1
</Location>
- Apache 2.4
<Location /admin>
Require ip 127.0.0.1
</Location>
En el caso de un nombre de host, se puede escribir como Require Host example.jp
.
Limitaciones utilizando variables de entorno
- Apache 2.2
<Location /admin>
SetEnvIf User-Agent ^IamAdmin/0¥.1 admin_ok
Order deny,allow
Deny from all
Allow from env=admin_ok
</Location>
- Apache 2.4
<Location /admin>
SetEnvIf User-Agent ^IamAdmin/0¥.1 admin_ok
Require env admin_ok
</Location>
Permitir si se cumple alguna de múltiples condiciones
- Apache 2.2
<Location /admin>
Order deny,allow
Deny from all
Allow from 192.168.1
Require group admin
Satisfy any
</Location>
- Apache 2.4
<Location /admin>
<RequireAny>
Require ip 192.168.1
Require group admin
</RequireAny>
</Location>
Además de RequireAny
, también existe RequireAll
, que se utiliza cuando se cumplen todas las condiciones.