Apacheのアクセス制限についてまとめます。
Apache2.4ではホストベースのアクセス制御にRequireディレクティブを利用します。
以前のバージョンでは、Order、Allow、Denyの3つのディレクティブで行っていましたが、
こちらは非推奨となっているので注意が必要です。
参考: https://httpd.apache.org/docs/2.4/howto/access.html
設定例は以下となります。
Require all grantedRequire ip 127.0.0.1上位ディレクトリでRequire all grantedが設定されていると、以下の設定はエラーとなります。
<Directory "/var/www/html/test">
Require not ip 60.143.6.62
</Directory>「すべてを許可」もしくは「指定したIPを拒否」という設定になりおかしくなるためです。
<RequireAll>で囲むことで、このエラーは回避できます。
<Directory "/var/www/html/test">
<RequireAll>
Require all granted
Require not ip 60.143.6.33
</RequireAll>
</Directory><RequireAll>で囲むことで、すべての条件を満たすという設定となります。
<RequireAny>で囲むといずれかの条件を満せばよいという設定になります。
ただ、囲まなくてもデフォルトで<RequireAny>となるため、使用する機会は少なそうです。
<Directory "/var/www/html/test">
<RequireAny>
Require ip 60.123.2.2
Require ip 60.123.2.1
</RequireAny>
</Directory>httpd.confと同様に、.htaccessに設定を書くことができます。
<RequireAll>
Require all granted
Require not ip 60.143.6.62
</RequireAll>