Apache2.4 2.2 ACL重写
服务器
Published: 2021-02-02

过去个人记录的一些内容。
在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

参考链接