.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を配置しておくとよいです。

related article

2020/01/30 other

サブドメイン⇒メインドメインへの転送処理

2019/11/19 JavaScript

slideUpやslideDownを使ったときのレスポンシブ対応