探しても意外とちゃんと動くサンプルがなかったので、結構苦労しました。
Satisfy any SetEnvIf Host "test\.domein\.com$" test_host Order allow,deny Allow from all Deny from env=test_host AuthUserFile "/var/www/test/domein/.htpasswd" AuthName "Please enter ID and Password." AuthType Basic require valid-user
- 最初に「Satisfy any」して全開放しておいて、「SetEnvIf Host」で命名しておいてからDenyする
- Denyのときのみその下のBasicが呼ばれる
という手順になるようです。(BasicとDenyfromのブロックの順番は無関係)
「Denyされる ≒ Basicが呼ばれる」ということをちゃんと理解していなかったので時間がかかりました。
「SetEnvIf」の内部は正規表現なのでお気をつけ。
(SetEnvせずにDeny from でホスト直書きしようとしたら確か上手くいかなかったので、ちゃんとSetEnvする必要があるっぽい?)
参考にさせていただいたのはこのあたり。
.htaccessっていつまで経っても謎なところがあるんだよねぇ。難しい。