IPアドレスが特定のものであれば,認証なしでコンテンツを見せて,そうでなければベーシック認証を行うという設定(BASIC認証とIPアドレス制限の併用?)について,以下のように Satisfy Any を用いる設定が各所で紹介されているが,
Satisfy Any Order Deny,Allow Deny from all Allow from XXX.XXX.XXX.XXX Allow from XXX.XXX.XXX.YYY AuthType Basic AuthName "Local Informatin for Hoge" AuthUserFile "/var/www/hoge/.htpasswd" require valid-user
これは Apache 2.2 までの書き方で,Apache 2.4 では上記とは異なる認証機構が導入されていて,古い書き方も一応動くが,新しい記述に改めたほうが良い.上記の場合は以下のようになる.
AuthType Basic AuthName "Local Informatin for Hoge" AuthUserFile "/var/www/hoge/.htpasswd" <RequireAny> Require ip XXX.XXX.XXX.XXX Require ip XXX.XXX.XXX.YYY Require valid-user </RequireAny>
詳細は
- Upgrading to 2.4 from 2.2
- http://stackoverflow.com/questions/4102763/apache-basic-authentication-except-for-those-allowed
などを参照.ちなみに当方の環境(apache2 2.4.10-10+deb8u4)ではSatisfy Anyの設定で一応は動作しているものの,BASIC認証時にPOSTメソッドがタイムアウトを起こすという現象が発生していた.
ちなみに2013/06/03 13:25 / apache 2.2 → 2.4の記事にも微妙に書いてあるが,すっかり失念していた.
追記(2016/06/13)
「BASIC認証時にPOSTメソッドがタイムアウトを起こす」はどうやら解決していなかった.具体的には Debian GNU/Linux jessie の MediaWiki なのだが,ファイルのアップロードはできるが記事の更新ができない(Show preview/changes も).