[apache] IP制限またはベーシック認証をする
問題
こんな設定がしたい。
- 特定のIPはベーシック認証なしで通す。
- その他のIPはベーシック認証を必要とする
答え
以下を .htaccess もしくは http.conf に設定する。
Apache 2.4
<RequireAny>
Require ip xxx.xxx.xxx.xxx
Require ip xxx.xxx.xxx.xxx
Require ip xxx.xxx.xxx.xxx
AuthType Basic
AuthName "Require Auth"
AuthUserFile /aaa/bbb/ccc/.htpasswd
Require valid-user
</RequireAny>
Apache2.4以降はRequireを使う。
RequireAnyでいずれかを満たしていればOKとなる。
Apache 2.2
AuthType Basic AuthUserFile /path/to/.htpasswd AuthName secret require valid-user Satisfy any order deny,allow allow from 111.222.333.444 222.333.444.555 deny from all
Satisfyとは、Satisfy any でいずれかを満たすこと→ IPアドレスもしくはID/パスワードで許可。
Satisfy all ですべてを満たすこと → IPとID/パスワードがOKなら許可。