.htaccessでBasic認証をかける
目次
用意するファイル
.htacessでBasic認証をかけるときに必要なファイルは以下の2つです。
- .htaccess
- .htpasswd
私はこれに加えて、fullpath.phpというファイルも用意しておきます。
これは、.htaccessファイルを作成する過程で便利なのでよく使っています。
①.htaccessを作成
ファイルを作成したら以下のコードをコピペします。
AuthUserFile **********
AuthGroupFile /dev/null
AuthName "Input ID and Password."
AuthType Basic
require valid-user
変更が必要なのは一行目のアスタリスク(*)が並んでいる部分です。ここには、.htpasswdファイルが置いてある場所までのパスを記述することになります。
fullpath.phpを使用する
ここで登場するのがfullpath.phpです。まずはファイルを作成し、以下のコードをコピペします。
<?php echo __FILE__; ?>
このファイルをBasic認証をかけたいサーバー(の階層)にアップロードします。(Basic認証自体には不要なのでパスを確認したら削除してOKです。)
fullpath.phpにアクセス
アップロードしたらfullpath.phpのURLを打ってインターネットで普通にアクセスしてみます。すると、fullpath.phpまでのパスが表示されていると思うのでこれをコピーします。
.htaccessに貼り付ける
先ほど作成した.htaccessファイルの一行目にコピーしたパスを貼り付けます。
AuthUserFile /パスをそのまま貼り付けてください/.htpasswd
ここには表示できないので記載しておりませんが、そのまま貼り付ければOKです。そして末尾を上記のように「fullpath.php」⇒「.htpasswd」に変更します。
これで①.htaccessは完成です。
②.htpasswdを作成
認証に必要なIDとパスワードを作成する必要があるので、パスワード暗号化ツールを使用します。
私はこちらの暗号化ツールを使わせてもらってます。もちろん無料で使うことができます。
IDとパスワードは認証がかかっているページにアクセスしたときに表示されるこのポップアップダイアログに入力するIDとパスワードになります。

設定したいIDとパスワードを入力し、「生成」をクリックすると下の方に「.htpasswd:********」と表示されるので、生成された暗号を丸ごとコピーして.htpasswdファイルに貼り付けます。これで②.htpasswdも完成です。
サーバーにアップする
①②のファイルが完成したので、Basic認証をかけたいサイト(階層)に2つセットでアップロードします。
サイトにアクセスしたときに上記のようなポップアップが出てくることを確認し、生成したIDとパスワードでログインできれば成功です。
fullpath.phpは削除
①でアップしたfullpath.phpは不要なので削除しておきましょう。
また、アクセスした先にファイルがないと404エラーになってしまうので、仮のindex.htmlやindex.phpを配置しておくとよいです。