昨日、『Apache2.4の場合の.htaccess』という記事にて『Apache 2.4』での『アクセス制御』の記述方法が『Apache 2.2』から大きく変更されていることをお伝えしました。

皆さん、こんにちは。
業務改善を行うIT・業務コンサルタント、高橋です。
今日は昨日の続きになります。
『Apache 2.4』では『アクセス制御』の記述方法が『Apache 2.2』から大きく変更されていますので、昨日に続き、今日はいくつかの記述方法をお伝えします。
Apache2.4でのアクセス制御サンプル
<すべての要求を拒否する>
これだけは昨日の投稿でも書きましたが念のため。
(Apache 2.2)
Order deny,allow
Deny from all
(Apache 2.4)
Require all denied
<すべての要求を許可する>
(Apache 2.2)
Order allow,deny
Allow from all
(Apache 2.4)
Require all granted
<IPを指定する場合>
(Apache 2.2)
・許可:Allow from 192.168.0.1
・拒否:Deny form 192.168.0.1
(Apache 2.4)
・許可:Require ip 192.168.0.1
・拒否:Require not ip 192.168.0.1
<環境変数を利用する場合>
(Apache 2.2)
SetEnvIf User-Agent “Googlebot” Allowbot
Allow from env=Allowbot
(Apache 2.4)
SetEnvIf User-Agent “Googlebot” Allowbot
Require env Allowbot
こんな感じになります。
少しまとめてみると『Apache 2.4』では以下のようになります。
・すべてを許可:Require all granted
・すべてを拒否:Require all denied
・個別指定で許可:Require ip 192.168.0.1 / Require host example.com / Require env example
・個別指定で拒否:Require not ip 192.168.0.1 / Require not host example.com / Require not env example
<条件ディレクティブ>
今まで記述したものに加え、『Apache 2.4』では以下の『ディレクティブ』を使って条件を指定できます。
・RequireAll:すべての条件にマッチすれば許可
・RequireAny:条件に一つでもマッチすれば許可
・RequireNone:条件に一つでもマッチすれば拒否
例えば、Basic認証でIPアドレスも条件に加えた場合、
<RequireAll>
Require user admin
Require ip 192.168.0.1
</RequireAll>
(AuthUserFile、AuthGroupFile、AuthName、AuthTypeなどはApache 2.2と同じです。)
といった感じになります。
ご参考までに。