例えばユーザディレクトリがこのような構成だとします。
taro(ユーザディレクトリ) | |-- public_html(ホームページディレクトリ)
public_html以下にパスワードを掛けるディレクトリ、同じく外にパスワードファイルを置くディレクトリを作ります。例えばこのように:
taro(ユーザディレクトリ) | |-- public_html(ホームページディレクトリ) | | | |-- members(パスワードを掛けるディレクトリ) | |--etc(パスワードファイルを置くディレクトリ)
そして、
・.htaccessファイルを、taro/public_html/members/ディレクトリに入れる。
・パスワードファイルを、taro/etc/ディレクトリに入れる。
ことによって、taro/public_html/members/ディレクトリをパスワードロックできます。
ページにパスワードロックをかけるにはパスワードファイルを作る必要があります。
パスワードファイルとは普通のテキストファイルで、以下のように、ユーザー名:暗号化されたパスワード、の組み合わせを人数分書き込みます。
ファイル名は自由です。
なお、ファイルの最後にはかならず改行を入れてください。そうしないと最後のユーザのパスワードが無効になってしまいます。
guest:n38bn783NYal4 azusa:rY4Srpv9U3Els kaoru:N42nYn6G4Bn3m midori:xe9TTen8d0asB
パスワードを暗号化するには、htpasswdプログラムを使うのが普通ですが、サーバにhtpasswdがインストールされていない場合がほとんどです。 そこで、CGIによるパスワードエンコーダを用意しましたので、もし必要ならダウンロード及びインストールしてお使いください。
インストールするのも面倒なら、このページにパスワード暗号化プログラムをすでにインストールしてありますのでご利用ください。
下の入力欄にユーザ名とパスワードを入力し、[暗号化]ボタンを押すと、パスワードが表示されますのでご利用ください。
(実行するたびに違う暗号パスが表示されますが、全く問題ありません。どれでもちゃんと使えます。)
以下の内容のテキストファイルを用意し、.htaccessという名前で保存します。 (もちろん、ユーザの環境に合わせて変更の必要な箇所もあります) Windowsの「メモ帳」ではピリオドが最初に付いたファイル名での保存ができないので、適当な名前を付けて保存した後、名前を変更してください。
下の項目のうち、
・AuthNameの後は、パスワード入力画面で表示させるメッセージです。日本語は使えません。
・サーバソフトウェアの最新バージョンでは、AuthNameの後の文字列をダブルクォーテーションで囲んだり、limitの後のGETやPOSTを大文字にしないとサーバエラーになる場合があります。(1998/09/07追加)
・AuthUserFileの後には、パスワードファイルの場所を指定します。重要なのは、「絶対パス」で指定することです。
例えば下の例は、taroディレクトリが/home/taro/に位置していて、パスワードファイルをmembers.datというファイル名で/home/taro/etc/内に入れる場合です。
AuthType Basic AuthName "Member Page" AuthUserFile /home/taro/etc/members.dat AuthGroupFile /dev/null <limit GET POST> require valid-user </limit>
ここまで下準備ができたら、早速以下の二つのファイルをアップロードしましょう。
ただし、テキストモードで転送しないと正しく動作しません。
・.htaccessファイルを、パスワードを掛けるディレクトリへ
・パスワードファイルを、.htaccessで指定したディレクトリへ
あとは、パスワードを掛けるディレクトリにindex.htmlなどHTMLファイルを入れてみて、動作確認してみましょう。 ブラウザでページを表示させようとすると、パスワード入力画面が表示され、ユーザ名とパスワードを入れて表示できるようになればOKです。