Apache2.4のRequireディレクティブの書き方を調べたのでメモ

特定のIPのみ許可

# Apache2.2までの書き方
<Directory "/path/to/docroot/">
    Order deny,allow
    deny from all
    allow from 192.168.11.0/24
    allow from 172.17.
</Directory>

# Apache2.4の書き方
<Directory "/path/to/docroot/">
    <RequireAny>                            // OR。1つ以上マッチすれば真。(Satisfy Any)
        Require all denied
        Require ip 192.168.11.0/24
        Require ip 172.17.
    </RequireAny>
</Directory>

特定のURLへのアクセスを拒否

SetEnvIf Request_URI "^/aaa" deny_aaa        // 拒否するURLその1
SetEnvIf Request_URI "^/bbb" deny_bbb        // 拒否するURLその2

# Apache2.2までの書き方
<Directory "/path/to/docroot/">
    Order allow,deny
    allow from all
    deny from env=deny_aaa
    deny from env=deny_bbb
</Directory>

# Apache2.4の書き方
<Directory "/path/to/docroot/">
    <RequireAll>                            // AND。全てにマッチすれば真。(Satisfy All)
        Require all granted
        Require not env deny_aaa            // 反転する場合はnotが使える
        Require not env deny_bbb            // 反転する場合はnotが使える
    </RequireAll>
</Directory>