ディレクトリ単位でアクセス制限をかけたい場合、.htaccessファイルによるBasic認証を使うとお手軽にできます。
アクセスを許可したい人に、ユーザー名とパスワードをわりふっておいて、それを使ってアクセスしてもらいます。
今回は以下のような設定で説明していきます。
ユーザー名: hoge_user パスワード: piyo_pass
htpasswdコマンドを使って、AuthUserFile(.htpasswd)を作ります。
これは”ユーザー名”と”暗号化されたパスワード”が格納されたファイルです。
このファイルはHTTPアクセスできない場所に置いておきましょう。
(今回の例では、”/home/bar/foo“に置きます。)
% htpasswd -c /home/bar/foo/.htpasswd hoge_user New password:piyo_pass Re-type new password:piyo_pass
これで、AuthUserFile(.htpasswd)ができました。
(htpasswdコマンドの”-c“オプションは新規作成の意味。すでにあるファイルにユーザーを追加する場合には不要)
ためしに、できたファイル(“/home/bar/foo/.htpasswd“)を見てみると…
hoge_user:$apr1$FeBhBy6T$JfU.bZkzNS/SANsHt0BR30
このようになりました。
htpasswdコマンドを使わなくても、Google検索結果(htpasswd) [↗]で出てくるサイトからブラウザ上で、AuthUserFile(.htpasswd)ができます。
この場合はできた結果をコピペしてAuthUserFile(.htpasswd)を作成して下さい。
Basic認証で、アクセス制限をかけたいディレクトリに、次のような.htaccessファイルを置きます。
AuthUserFile /home/bar/foo/.htpasswd AuthGroupFile /dev/null AuthName "Input your UserName and Password. " AuthType Basic require valid-user
これで完成です。
Basic認証のかかったディレクトリにアクセスすると、次のようなウィンドウが出てアクセス制限ができます。