やるきなし

2016/05/30 14:21 / Apache 2.4.10 Satisfy Any

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>

詳細は

などを参照.ちなみに当方の環境(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 も).