レンタルサーバーの管理画面からでもかけることはできたりするのですが、今回は『.htpaccess』『.htpasswd』を使ってベーシック認証(パスワード)をかける方法をまとめてみました!
目次
そもそもパスワードかける必要って??
テストサーバーに上げたり、特定の人のみが見れるようにすろものです。掛けないとまだ本番にアップしないものが誰でも見れてしまったり、検索に引っ掛かってしまったりします。ベーシック認証は簡単にサイトにパスワードをかけられるものです。
ベーシック認証をかけるのに必要なもの
● .htpasswd …指定されたID / Passwordを記載するもの
● .htaccess …指定したページでパスワードを入れないと開かないようにするもの
以上です!では手順にいきましょう。
ベーシック認証をかける手順
Step1『.htpasswd』を作成する
❶.htpasswd生成ツール( https://tech-unlimited.com/makehtpasswd.html )のID / Password欄に指定したいID / Passwordをいれて生成ボタンをクリックすると生成結果がでるのでそれをコピーします。

❷.htpasswd生成ツールのID / Password欄に指定したいID / Passwordをいれて生成ボタンをクリックすると生成結果がでるのでそれをコピーします。

後はメモ帳でもなんでもいいのでコピーした1文を張り付けるだけ!名前を.htpasswd として保存しましょう。
追記:Windowsの場合、メモ帳は使わずにエデュターを使った方がいいかもしれません!!※Windowsメモ帳でUTF-8保存するとBOM有りで保存されてしまい、影響してBASIC認証が機能しなくなるようです。…が私は問題なかったですので念のため…。
Step2 ロックをかけたいページのフルパスを調べる
.htaccessにはロックをかけたいサイトのディレクトリ階層のフルパスが必要になります。このフルパスですがphpの記述で簡単に求められます!
<?php
echo __FILE__;
?>

上記の記述のphpファイル(タイトルは何でもOK)を作って、求めたいディレクトリ階層にいれます。

今回は上記のディレクトリ階層にパスワードをかけるためにフルパスを調べたいので、同階層にphpファイルを入れました!
後はこのphpファイルをブラウザで見てみましょう。URLの最後に 〇〇(タイトル名).php を打ち込んで表示させます。

上記のように、置かれたphpのフルパスが分かります。もうこのphpファイルは使わないので削除して大丈夫です。
Step3『.htaccess』を作成する
最後に.htaccessファイルを作ります。
AuthType Basic
require valid-user
AuthName "Please enter your ID and password"
AuthUserFile /ここにディレクトリのフルパスを入力/.htpasswd
AuthType …Basic認証を使う設定
require …ユーザー全員に認証を表示される設定
AuthName …認証画面に表示させる文字列
AuthUserFile …IDとパスワードが書かれたファイルの場所がフルパスで書かれています。
●AuthUserFileの欄に先ほど調べたフルパスのphpファイルの前までをコピペしましょう。

後は作った.htpasswdと.htaccessをパスワードをかけるディレクトリにいれるだけ!この際、.htpasswd .htaccess の拡張子(.htpasswd.txt の.txtの部分)は消しておきましょう。

これでベーシック認証をかけることができました!

フルパスが合っているかの確認
<?php echo file_exists('/確認したいフルパスを入力/.htpasswd') ? 'OK' : 'NG';
上記のスクリプトをフルパスが合っているか確認したいディレクトリに入れてブラウザで確認すると、フルパスが存在したらOK、しなければNGと表記してくれます。上手くいかないときは一度確認してみてください。
