ステージングサイトやテストサイトなど、表立って見せたくないし検索に引っかかっても困るページなどに、ベーシック認証を掛けておくことは多々ある。
そういう目線でBASIC認証をざっくりとメモっておく。
.htpasswdファイルを作る。
htpasswd -c ファイル名 ユーザー名 で作成する。
$htpasswd -c .htpasswd taro New password: Re-type new password: Adding password for user taro
.htaccessファイルを追加もしくは作成(.htaccessパターン)
下記記述の.htaccessファイルをベーシック認証をかけたいディレクトリにvimなどで作成。
すでにファイルが存在している場合は追加。
AuthType Basic AuthName "gomokuro secret area" AuthUserFile /var/www/html/.htpasswd Require valid-user
あとは、アクセスすれば、掛かっているはず。
httpd.confのディレクトリに直接書く(httpd.confパターン)
root権限がある場合や、.htaccessが他の目的で使用しているので使いたくない場合(CakePHPのリライト等)などは、httpd.confのディレクティブに直接書いてもよい。
ただし、apacheの再起動が必要になる。
<Directory "/var/www/html/"> AuthType Basic AuthName "gomokuro secret area" AuthUserFile /var/www/html/.htpasswd Require valid-user </Directory>
注意点
・AuthUserFileのパスはフルパスで書くこと。
相対パスで書いて動かなくてハマる。
・Requireは正しく書くこと。
Require valid-userで許可されたユーザーならだれでも認証を通すようにすればよいが、たまに下記のように、認証が通った後の許可ユーザーを書く。
Require user gomokuro taro
・httpd.confで、AllowOverride Allになっていないか。
上記2つは何故かユーザー名もパスも間違ってないのに通らないという動作になるが、こちらは、うんともすんとも言わず、わかりにくいので注意。