今回はApacheの小ネタを紹介します。
特定のURLのみ、認証なしでアクセスを許可したい
httpd.confを編集する
httpd.conf
# サイト全体にベーシック認証を設定
# ユーザーやパスワードは適宜変更
<Location />
AuthType Basic
AuthName "hogehoge"
AuthName "id and password?"
AuthUserFile /etc/httpd/.htpasswd
Require valid-user
</Location>
# jpeg、pngとgif画像については、認証なしでアクセスを許可する
<LocationMatch /.+\.(jpe?g|png|gif)$>
Order allow,deny
Allow from all
Satisfy Any
</LocationMatch>
ちょっと解説
「Satisfy Any」を設定すると、認証されたユーザーもしくは、
IPのどちらかで許可されれば、アクセスが可能になります。
今回は、画像系の拡張子がついたURLを全て許可するようにしました。
「Satisfy All」だと、両方の許可が必要なようです。