BASIC 認証ってかなりの多くの場面で使いますね。デモサイトを誰かに見せたり、本当に簡単なアクセス制限をかけたい場合とか、検索エンジンとかその辺のアクセスを防いだりとか、とりあえず付けるとホッとします。
ですが意外に付けるの大変です。.htaccess に BASIC 認証用の記述をして、.htpasswd に暗号化した記述を入れて、サーバーにアップロードして、そして .htaccess に .htpasswd までのパスを書くという流れ。とても細かい作業が多いのでパッケージにしておきました。
サーバーのドキュメントルートなどのパス情報を取得する
.htpasswd などを読み込むためにサーバーのパスなどが必要です。もし分からない場合は PHP で出力することもできますが、あまりおすすめの方法ではありませんので、最終手段として利用してください。
1 2 3 4 5 6 7 8 9 10 11 12 | <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>Server Information</title> </head> <body> <pre style="text-align: left;"> <?php print_r($_SERVER); ?> </ pre> </body> </html> |
.htpasswd を作成する
以下はユーザ名が admin でパスワードが password の場合の記述です。
単に形式としてのアクセス制限ならこのままで、ある程度真面目にアクセス制限したい場合は BASIC 認証用パスワード暗号化ツールなどを使うと良いでしょう。
1 | admin:ZOb9qQRD8CKi6 |
.htaccess に BASIC 認証の設定を記述する
変更する点は AuthUserFile の部分のみです。こちらは先ほど取得したサーバーの情報があれば入力することができます。
1 2 3 4 5 6 7 | AuthType Basic AuthName "Please enter your password" AuthUserFile /var/www/htdocs/.htpasswd require valid-user <Files ~ "^\.(htaccess|htpasswd)$"> deny from all </Files> |
面倒くさがり屋のあなたのためにパッケージを作りました
ダウンロードすると上記で紹介したファイル3つが入っています。
ファイルを作成したり、テキストをコピーしたりする手間が省けるので少しは作業時間の短縮になるのではないでしょうか。BASIC 認証をする場合はこの記事を毎回参考にしてくたら嬉しいです。
コメント