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アドレスで特定の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もある。

参考リンク