过去个人记录的一些内容。
在Apache 2.4中,如果使用mod_access_compat,也可以通过Allow Deny设置ACL。
Apache2.2 -> 2.4 ACL的重写
全部允许的情况
- Apache 2.2
<Directory "/home/www">
Order allow,deny
Allow from all
</Directory>
- Apache 2.4
<Directory "/home/www">
Require all granted
</Directory>
全部拒绝的情况
- Apache 2.2
<Directory "/home/www">
Order deny,allow
Deny from all
</Directory>
- Apache 2.4
<Directory "/home/www">
Require all denied
</Directory>
针对特定IP地址进行允许的情况
- 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>
对于主机名的情况,可以像Require Host example.jp
这样书写。
使用环境变量进行限制的情况
- 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>
在多个条件下任意一个满足即允许的情况
- 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>
除了RequireAny
外,还有在所有条件都满足时使用的RequireAll
。