Basic認証とは?
Basic認証とは、サイトにアクセスした際に「ユーザ名」と「パスワード」を入力しないとアクセスできないようにする設定のことです。公開前のテストページをクライアントに確認していただく際や、特定の人にのみ公開する場合にBasic認証の設定を行います。
Basic認証の設定方法
以下の流れで、Basic認証の設定を行います。
- パスワードファイルを作成(.htpasswd)
 - .htaccessファイルを作成・編集
 - Basic認証の動作確認
 
パスワードファイルを作成(.htpasswd)
.htpasswdを作成
まずは下記サイトで、.htpasswdを作成します。

サイトにアクセスすると下記画面が表示されるので、IDとパスワードを入力した後、左下の「.htpasswd作成」ボタンを押してください。
このサイトにも記載されていますが、パスワードは9文字以上の分は無視されてしまうので、8文字以内で入力しましょう。

「.htpasswd」が生成されるので、コピーしてメモ帳(macであればテキストエディット)に貼り付けましょう。メモ帳をテキストファイルとして保存し、「htpasswd.txt」とリネームします。その後、Basic認証をかけたい場所にアップロードし、サーバー上で「.htpasswd」とリネームしてください。

.htaccessファイルを作成・編集
.htaccessファイルには下記コードを入力します。各項目についての詳細は下記に記載しました。
AuthType Basic
AuthName "Basic Authentication"
AuthUserFile /path/to/.htpasswd
Require valid-user
<Files ~ "^.(htpasswd|htaccess)$">
    deny from all
</Files>Basic認証をかけたい場所に既に.htaccessファイルが存在する場合は、直接追記してください。存在しない場合は、まずメモ帳に上記コードを入力し、htaccess.txtとリネームしてサーバーにアップロードしましょう。その後、サーバー上で、「.htaccess」とリネームしてください。
AuthType
AuthTypeには認証の種類を設定します。今回はBasic認証をかけたいので、「Basic」と記述します。
AuthName
AuthNameでは、Basic認証の名前を入力します。
AuthUserFile
AuthUserFileには、.htpasswdファイルのサーバーパス(ルートディレクトリからファイル名まで)を入力します。間違えてサイトのURLを入力してしまうとBasic認証がかけられないので注意しましょう。
サーバーパスは、FTPサーバー上で確認することができます。設置した.htpasswdファイルを選択するとサーバーパスが表示されるので、コピペしてルートディレクトリからファイル名まで含めたパスをAuthUserFileに指定しましょう。

Require
RequireではBasic認証を求めるユーザーを指定することができます。
valid-userと指定することで、AuthUserFileで指定したパスにアクセスした全てのユーザーに対して、Basic認証を求めることができます。
Files ~の記述
Files ~の記述は、.htpasswdと.htaccessファイルにアクセスできないようにする設定です。この記述がないと、ファイルにアクセスされてパスワードを盗み取られる可能性があります。
Basic認証の動作確認
Basic認証の設定が終わったら、実際にサイトにアクセスしてみましょう。ユーザー名とパスワードを入力する画面が表示されれば、Basic認証の設定はできています。あとはユーザ名とパスワードを入力して、問題なくサイトが表示されればBasic認証の設定は完了です。

Basic認証後にエラーが発生
Basic認証でユーザー名とパスワードを入力後、下記のようなエラーが発生する場合、「.htaccess」ファイルの記述に誤りがある可能性があるので、入力ミスがないか、サーバーパスが適切かどうかを確認しましょう。

まとめ
以上、Basic認証の設定方法についてご紹介しました。サイト公開前にBasic認証を設定することが多いので、さくっと設定できるようにしておきましょう。

