■1.アクセス制限を設けたいページを置くフォルダを作成する
フォルダ毎に制限をかけますので、member や private など、適当な名前のフォルダを作成し、アクセス制限をかけたいページはこのフォルダ内に置きます。public_html の中に直に置くと全てのページが制限されます。
■2.ユーザー名とパスワードがセットになったファイルを作成する
下記のようなユーザーIDとパスワードをコロン「:」で区切った「.htpasswd 」ファイルを作成します。 パスワードは暗号化されたものを記入します。暗号化は ここのページ で行ってください。
◯ユーザーID:パスワード
tarou:ZsNvKSn306DII
hanako:5ChkhmPz5PJxw
zirou:kQVQx4X68TxgM
「.htpasswd 」と言うファイル名を付けて保存し、サーバーのどこかわかりにくい場所に置きましょう。アップロードする時は Ascii モードで転送します。
■3.「.htaccess」 ファイルを作成し制限したいフォルダ内に置く
「.htaccess」 の記述の仕方は下記のようになります。(破線内)
-----------------------------------------------------------------------------
AuthUserFile /home/www/******/data/.htpasswd
AuthType Basic
AuthName "メンバーページ"
<LIMIT POST GET PUT>
require valid-user
</LIMIT>
ErrorDocument 401 /******/touroku.htm
-----------------------------------------------------------------------------
******はお客様のホームページ名(http://web#.kcn.jp/******/の******部分)に読み替えてください。
AuthUserFile には「2.」で作成した「.htpasswd」の場所を指定します。(上記はpublic_htmlフォルダの外にdataフォルダを作成し、その中に.htpasswdファイルを転送した場合の一例です。)
AuthName はパスワードを求めるダイアログに表示されます。任意に変更できます。例のように日本語を使った場合は、ブラウザ等環境によって文字化けすることがあります。
ErrorDocument 401は認証が失敗した時表示される画面です。パスワードを知らないお客様用のページを作成しておき、その相対URLを指定します。このお断りのページは制限をかけたフォルダの外に置き、必ず / から記述してください。
お断りのページを作成するのが面倒な時はこの行を丸ごと削除してください。英語でメッセージが表示されます。作成した「.htaccess」ファイルを、アクセスを制限したいフォルダ(「1.」で作成したフォルダ)に置きます。サーバーにアップロードする時は、Ascii モードで転送します。
ブラウザからアクセスし、思った通りに動作しているかどうか確認しましょう。上手く行かない場合は下記をチェックしてください。
■トラブルシューティング
1.サーバーエラーがでる
「.htaccess」の記述ミス、あるいは改行コードが違うため正しく認識できていない場合に起こります。「.htaccess」にスペルミスなどがないか確認し、Ascii モードで転送し直してください。
2.正しく認証されていない
パスワードファイルが正しく読めていないことが考えられます。「.htpasswd 」の内容を確認するとともに、「.htaccess」に記述した「.htpasswd 」のパスに間違いがないか、「.htpasswd 」のファイル名が間違っていないか確認してください。 (認証画面のダイアログで入力するパスワードは、暗号化する前のパスワードです)
3.認証に失敗した時のページが正しく表示されない
「.htaccess」に記述したお断りページのurlに間違いがないか確認してください。
[回答最終更新日:]