サイトにパスワード認証をかける方法をご紹介いたします。.htaccessを使ったBasic認証をかける方法で、一時的にサイトにロックをかけることができます。
.htaccessを使ってサイトにBasic認証(パスワード)をかける方法
.htaccessの作成
まずは、.htaccessを作成します。先頭にドットがついたファイルが作成できない場合は、htaccess.txtなどで保存しておき、サーバーにアップしてからリネームしてください。
.htaccessの中身は以下のように記述します。
AuthType Basic AuthName "表示メッセージ(半角英数字のみ)" AuthUserFile "パスワードファイルのフルパス" require valid-user
パスワードファイルは後ほど作成します。
例えば、「/home/example/www/htpasswd/.htpasswd」にパスワードファイルを作成した場合は、以下のように記述します。
AuthType Basic AuthName "Input your ID and Password." AuthUserFile /home/example/www/htpasswd/.htpasswd require valid-user
サーバーのフルパスがわからない場合は、サーバー会社に問い合わせるか、以下コードが記述されたPHPファイルを調べたいディレクトリに設置してアクセスすることで確認できます。
<?php echo __FILE__; ?>
.htaccessを作成したら、ルートディレクトリにアップロードしてください。サイト全体にBasic認証をかけることができます。
一部のディレクトリのみにBasic認証をかけたい場合は、対象のディレクトリに.htaccessをアップしてください。特定のページのみにBasic認証をかけたい場合は、以下のようにFilesでページを指定してあげます。
AuthType Basic AuthName "Input your ID and Password." AuthUserFile /home/example/www/htpasswd/.htpasswd <Files example.html> require valid-user </Files>
上記の場合、example.htmlにのみBasic認証がかけられます。
サーバーにアップした.htaccessのパーミッションは「604」に変更しておきましょう。
.htpasswdの作成
ユーザー名とパスワードが記述された.htpasswdというファイルを準備します。.htpasswdの中身は、「ユーザー名:暗号化されたパスワード」という書き方をします。
「BASIC認証用 パスワード暗号化」というツールを使うと、簡単にパスワードを暗号化できます。
ユーザー名とパスワードを入力して[パスワード暗号化]をクリックすると、以下のように暗号化されたパスワードを表示してくれます。
user:X3ebVz1FFcmLc
ユーザー名とパスワードを必要な分だけ.htpasswdに記述したら、サーバーにアップロードします。アップする場所は、上述した例の場合は「/home/example/www/htpasswd」フォルダ内ですね。
.htaccessと同様に、.htpasswdのパーミッションも「604」に変更します。
.htaccessと.htpasswdが設置できたら、サイトにアクセスしてみましょう。以下のような認証画面が表示され、ユーザー名とパスワードを入力することでサイトを閲覧できます。
あとがき
制作中・オープン前のサイトでBasic認証をかけておけば、特定の人だけが閲覧できるようになります。
一時的にサイトにロックをかけておきたい場合は、ぜひ参考にしてください。