ブログ
「.htaccess」と「.htpasswd」を使ったBASIC認証でのアクセス制限
こんにちは、リースエンタープライズブログ編集部です。
本日は【「.htaccess」と「.htpasswd」を使ったBASIC認証でのアクセス制限】の設定方法をメモがてら掲載したいと思います!
ウェブサイトを運営していると、特定のページにパスワードを付きのアクセス制限をしたいというような事があると思います。
そのような場合、「.htaccess」と「.htpasswd」というファイルを使う事で比較的簡単に実現できます。
本記事は、.htaccessとPHPが使用出来る設定のサーバーを前提にしています。
目次
ファイルの作成
・デスクトップ、もしくは任意のエクスプローラー上で右クリック>新規作成>テキストドキュメント
・メモ帳から空のテキストファイルを作成
等、どのような方法でもよいので空のファイルを2つ作成して下さい。
ファイル名の変更
※この手順はこの時点で必ずしなくてはいけないものではありません。作業手順上、名称があった方がやり易い人のみ行って下さい。
作成した2つのファイル名を「htaccess」と「htpasswd」に変更して下さい。
実際には「.htaccess」「.htpasswd」というファイル名にしたいのですが、
通常Windows上では「.htaccess」という頭が「.」から始まるファイルを作成しようとすると「ファイル名を入力して下さい」と言った形でエラーになります。
ファイル名の頭に「.」を付ける作業は後に行います。
.htaccessの設定
「htaccess」ファイルをテキストエディタで開き、下記をコピーして下さい。
全てのアクセス者に対してパスワードを指定したい場合
AuthUserFile /var/www/vhost/test.com/.htpasswd
AuthGroupFile /dev/null
AuthName “Please enter your ID and password”
AuthType Basic
require valid-user
Satisfy any
指定IPでは認証なしにして、それ以外のIPからのアクセスに対してはパスワードを指定したい場合
AuthUserFile /var/www/vhost/test.com/.htpasswd
AuthGroupFile /dev/null
AuthName “Please enter your ID and password”
AuthType Basic
require valid-user
Satisfy any
# 指定IPの許可
order deny,allow
allow from 123.123.123.123
deny from all
「AuthUserFile」の行は「.htpasswd」の設置場所のパスを記述します。
設置するサーバーによってパスは変わるので調べた上で変更して下さい。
.htpasswdの設置場所のパスが分からない場合
調べ方が分からない、調べてみたが上手くいかないという場合は下記のようなPHPファイルを作成し、「.htpasswd」と同じ場所に設置してアクセスして下さい。
パスが表示されます。
path.php
echo __FILE__ ;
?>
.htpasswdの設定
.htpasswdには認証時に入力させたいIDとパスワードを設定します。
ただ、IDとパスワードを直接書き込むのではなく、暗号化した状態のものを記述する必要があります。
lufttools
http://www.luft.co.jp/cgi/htpasswd.php
上記サイトにて目的のIDとパスワードを入力し、生成ボタンを押した後に出来たものをコピーし、
「htpasswd」ファイルをテキストエディタで開き、貼り付けて下さい。
今回筆者は上記のサイトを使わせて頂きましたが、同じ事が出来るサイトは色々あります。
「BASIC認証用 パスワード暗号化」等で検索して好みのサイトを使用して下さい。
ファイルの設置と名称の変更
「htaccess」と「htpasswd」を設置したいサーバーにアップロードして下さい。
この際、htaccessに記載した「AuthUserFile」の部分のパスに合わせて設置する必要があります。
アップロードが完了したら、FTPクライアント上でファイルの名称を変更して下さい。
こちらでの変更であればファイル名の頭に「.」を付けることが出来ます。
FTPクライアントによっては「.htaccess」という名称になった時点でファイルが見えなくなる設定のものがあります。
その際はFTPクライアント毎に設定を変更して下さい。
パーミッションの変更
ファイルの設置、ファイル名の変更が完了したら最後にパーミッションを「604」に変更して下さい。
FTPクライアントによって操作は違いますが、ファイルを右クリックする事でパーミッションの変更メニューが出て来ると思います。
「604」で正常に機能しない場合は「644」に設定してみて下さい。
以上の設定が完了すればBASIC認証によるアクセス制限ができるようになっていると思います。