過去に個人的にメモってたもの。
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
もある。