掲示板<10>2006/4/22
from=TOZ
会員制用のCGIではなく、「.htaccess」でアクセス制御ができないかと考えて、ホームページや知人に聞きながら、
やっと実験に成功した。まず、アクセスを制御したいディレクトリに「.htaccessファイル」を入れる。このファイルに
書く中身は、
----------------------------------------------------------------
 AuthUserFile /var/www/html/(アクセス制御のディレクトリ名)/.htpasswd
        ^^^^^^↑^^^^^
       私のapacheサーバーのHTML用の場所
 AuthName ユーザー名とパスワードを入力して下さい。
      ^^^^^^^^^^↑^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      メッセージ文章(空白があるときは、前後を"と"で囲むこと)
 AuthType Basic
 require valid-user
----------------------------------------------------------------
以上の4項目を書き、ファイル名を「.htaccess」とするのだが、制御ディレクトリにアップロードするとき、ファイル
名の前についている「.(ドット)」が付くように気をつける。また、パーミッションは「604」または「rw----r--」
とすること。さて、ユーザー名とパスワードのファイル「.htpasswd」の作成だが、これが分かるまで難しかった。
ずいぶん時間がかかった。まず、linuxの画面にして、
----------------------------------------------------------------
[root@webmin ○○]#htpasswd -c .htpasswd ID
 ^↑^ ^^↑^^ ^↑^
root | アクセス制御のディレクトリ名
権限  私のサーバー名

New password:PW
Re-type new password:PW
----------------------------------------------------------------
これで、IDとPWが設定されたわけだが、この「.htpasswd」ファイルの中は「ID:Dxb9krs546FHe」とランダムな
PW表示がされておるが、上記で打ち込んだパスワードで大丈夫なので、安心して欲しい。このファイルもパーミッ
ションが「604」である。

これで、この制御したいホームページにアクセスすると、IDとPWを聞く画面が出てきて、3回失敗すると、エラー
表示がされる。正確なIDとPWであれば、当然中に入ることができる。

もう1つ大事なことがありました。apacheサーバーの設定ファイル「httpd.conf」の一部をNoneからAllに変えなけれ
ばなりません。
----------------------------------------------------------------
AllowOverride None
       ^↑^
       ここをAllにする
----------------------------------------------------------------
これで、制御することができました。


← 一覧へ戻る