.htaccessと.htpasswdで簡易ユーザ認証
webで公開しているディレクトリにパスワードをかけて閲覧を制限する簡単な方法。
制限するディレクトリに.htaccessを作って、以下のように記述
AuthUserFile /var/www/.htpasswd
AuthGroupFile /dev/null
AuthName "Secret Area"
AuthType Basicrequire valid-user
<Files ~ "^.(htpasswd|htaccess)$">
deny from all
</Files>
詳しい説明はここを参照。
次に認証ユーザとパスワードを登録。
$ htpasswd -c /var/www/.htpasswd user
パスワードを聞かれるので認証パスワードを入力すると/var/www/.htpasswdファイルが作られ、暗号化した状態でパスワードが保存される。
追加するときは
$ htpasswd /var/www/.htpasswd user
Apacheのドキュメントも参考に。
.htaccessを読み込むためにはAllowOverrideをALLにしないといけないので忘れずに。詳しくはApacheのドキュメント。
< 2011/08/10 Modified >
localhostからは参照可能にしたい場合は次のようにする
Order Deny,Allow
Deny from allAuthUserFile /var/www/.htpasswd
AuthGroupFile /dev/null
AuthName "Secret Area"
AuthType Basicrequire valid-user
Allow from localhost 127.0.0.1
Satisfy Any<Files ~ "^.(htpasswd|htaccess)$">
deny from all
</Files>