公開前にテスト環境で動作の確認をしたいときに。
また、クライアント先に確認してもらう時など「Webサイトを公開し特定のユーザーに見せたい」と言う場面で使われます。
簡易的なアクセス制限なので一時的に見せたいという時のみ使います。
- HP公開前に情報が漏れてしまうのを防ぐ
- 検索エンジンのアクセスをブロックする
このサイトの場合、http://〇〇〇/test/というディレクトリにアップし、testディレクトリ全体にBasic認証をかけていきます。
設置方法
macユーザーは隠れファイルになってしまうので、テキスト形式でそれぞれ「htaccess.txt」「htpasswd.txt」を作成し、サーバーにアップロードしてから名前を変更する方がオススメです。
.htaccessファイルの作成
テキストファイル形式のhtaccess.txtを作成します。
使うソフトはmacならテキストエディットでもなんでも大丈夫です。私はSubrime textを使用してます。
AuthType Basic
AuthName "Enter your ID and password"
AuthUserFile /home/users/〇〇/web/test/.htpasswd
AuthGroupFile /dev/null
require valid-user
AuthType
「Basic認証」を使う指定をします。
AuthName
ここで指定した文字列が認証画面のID、パスワード入力のダイアログボックスの中で表示されます。
日本語を使用すると文字化けする可能性があるので、半角英数字での設定がおすすめ。
AuthUserFile
パスワードとIDを明記したファイル「.hrpasswd」の格納場所を記述します。
URLではなく、サーバー内のフルパスで記述するので注意。
フルパスの確認方法は後半で紹介してます。
AuthGroupFile
グループごとにアクセス許可/未許可を設定するものです。
何も設定しないので「/dev/null」と入力します。
require
全てのユーザーに認証を表示させるという意味です。
.htpasswdファイルの作成
暗号化ツールでサクッと作っちゃいましょう。
IDとPasswordに指定したい文字を入れ、生成ボタンを押すと暗号化されたパスワードが表示されます。
IDをtest、Passwordをtestとした場合のパスワードが生成されました。
test:/3XVKIGpXlJOA
そのままhtpasswd.txtにペーストしてサーバーにアップします。
作成したファイルをアップロードする
htaccess.txtとhtpasswd.txtの2つのファイルを、FTPで制限をかけるディレクトリにアップロードします。
アップロード後、ファイル名をそれぞれ、「.htaccess」「.htpasswd」に変更します。
どちらのファイルもパーミッションを604にしておきましょう!
これで完了です。
フルパスの確認方法
フルパスがわからないと言う時はPHPファイルを作ってサーバーにアップします。
名前はなんでもいいのでとりあえずpath.phpとつけました。
<?php
echo __FILE__;
?>
アップ後、ブラウザでそのファイルのURLにアクセスすると、画面にpath.phpまでのフルパスが表示されていると思います。
/home/users/〇〇/web/path.phpの〇〇の部分がディレクトリのパスです。
パスワードを確認できたらPHPファイルは削除しちゃいましょう。
Basic認証の設定後にサイトがエラーになった場合
なんらかの原因でサイトがエラーになった場合はまずはどちらかの方法でベーシック認証を解除することができます。
- サーバーから.htaccessファイルを削除する
- .htaccessからベーシック認証関連の記述を消す
.htaccessにベーシック認証以外の記述がない場合はファイルを削除してしまうのが手っ取り早いです。
原因が特定できれば再度トライしてみてください。
LOLIPOP!はアクセス制限機能で簡単にできる
実はめっちゃ簡単。こんなに頑張って作ったのに…笑
https://lolipop.jp/manual/user/acl/
ベーシック認証以外の記述がある場合は上記の方法が使えると思うのでご参考までに。