.htaccessで特定のページにBasic認証を設定する方法【Web】

この記事では.htaccessファイルを作成して特定のページにBasic認証を設定する方法を紹介します。

.htaccessでパスワードを設定する手順

1. .htaccessファイルを作成する

htaccessを作成してBasic認証を掛けたいページを指定します。

2. .htpasswdをファイルを作成する

htpasswdを作成してBasic認証のユーザー名とパスワードを設定します。
パスワードは専用のツールで暗号化します。

3. ファイルをサーバーにアップする

.htaccessと.htpasswdをアップしてファイル名を変更して完了です。

.htaccessファイルを作成する

.htaccessはメモ帳等のテキストエディタで作成できます。
テキストエディタを開き、下記をコピペします。

<Files ~ "^\.(htaccess|htpasswd)$">
deny from all
</Files>
AuthUserFile /var/www/hogehoge/.htpasswd
AuthGroupFile /dev/null
AuthName "Input ID and Password."
AuthType Basic
order deny,allow
<Files hoge.html>
require valid-user
</Files>

4行目の AuthUserFile で.htpasswdファイルのフルパスを設定します。
9行目でBasic認証を掛けるページを設定します。

「.htaccess」ファイルを作成する場合は、ファイル名の初めにドットを入れてしまうと隠しファイルになって見えなくなってしまうので、
サーバーにアップするまでは「_.htaccess」のようにドットの前に任意の文字を入れ、サーバーにアップしてからファイル名を変更します。

フルパスが分からない場合は以下の手順で確認します。

フルパスの確認方法
テキストエディタに書きをコピペします。

<?php
echo __FILE__;
?>

pass.php等の任意のファイル名で保存し、.htpasswdファイルのアップ先と同じ階層にアップして、このファイルにアクセスします。
そうするとブラウザにフルパスが表示されます。
上記の例だと「/var/www/hogehoge/pass.php」となります。

.htpasswdファイルを作成する

id(ユーザー名)とパスワードを決めたらパスワードを暗号化します。

パスワードの暗号化は下記のページからできます。
TECH UNLIMiTED

生成されたコードをテキストエディタにコピペして保存します。
.htpasswdも.htaccessと同様にファイル名に注意して作成します。

サーバーにアップする

作成した2つのファイルをサーバーにアップします。
Basic認証を掛けたいページと同じ階層にアップします。

前述のようにアップするまでは別の名前になっていると思いますので、FTPソフトでアップした後に
.htaccess
.htpasswd
になっているのを確認して完了です。

今回はhoge.htmlという特定のページにBasic認証を掛けましたが、
.htaccessの9行目で指定したhoge.htmlをhoge.pdfのようにファイルに設定することもできます。