いつも忘れるので書いておこう。
ある場所からは認証なしでページ閲覧できて、
他の場所からは認証が必要になるというパターンの.htaccessの書き方。
もちろん、httpd.confなどに直接書いてもOKです。
【条件】
mod_access モジュールが有効になっていること
mod_auth モジュールが有効になっていること
AllowOverride Limit AuthConfig
○.htaccess
# "Limit"ルール # # この書き方に違和感を覚える人もいるかもしれませんが、 # (特にルーターの設定をする人) # ルーターのACLは上から評価していって、 # 適合するものがあったらその時点で評価は終了しますが、 # Apacheのこれは、Orderの順番で必ず両方を評価していき、 # 下位のACLが上位のACLを上書きしていきます。 # つまり、172.16.0.1の場合、"Deny from all"で拒絶対象となりますが # 次の"Allow from 172.16."で救済されるわけです。 # Order Deny,Allow Deny from all Allow from 10.0.0.32/27 172.16. 192.168.0.1 .example.local# # "AuthConfig"ルール # AuthUserFile /var/www/htpasswd AuthName "Secret Area" AuthType Basic require valid-user
# # Sastisfy any だと"Limit"と"AuthConfig"どちらかにパスすればOKです。 # これを Satisfy all とすると、 # "Limit"と"AuthConfig"両方の条件を満たさないとOKとなりません。 Satisfy any
