ネットにアップしたサイトをまだ完全公開にしたくないとき、手軽に閲覧制限を設けられるBasic認証。
.htaccessと.htpasswdという2つのファイルを用意することで設定ができます。
Basic認証の設定方法
下記2ファイルをBASIC認証を行いたいディレクトリにアップロードすることで設定が可能です。
- .htpasswd
- .htaccess
誤った記述をしてしまうとサーバー側で「500エラー」が発生してしまうので、内容は確認しながら作っていってください。
.htpasswdの作成方法
.htpasswdでは、Basic認証に必要なIDとパスワードを記載しておきます。
ただし、パスワードなどをそのまま記述してしまうとセキュリティ的に問題が生じるので、下記サイトを使ってパスワードを暗号化しておきましょう。
https://www.luft.co.jp/cgi/htpasswd.php
ID、Passwordの欄に設定したいものを入れて「生成」ボタンを押します。
するとページの下部に暗号化されたテキスト(xxxx:xxxx のように間に : が入っているもの)が表示されるので、そのままコピーして.htpasswdに貼り付けてサーバーにアップしてください。
.htaccessの作成方法
.htaccessでは、Basic認証を行うことを宣言します。
AuthUserfile /ここにフルパスを記載/.htpasswd
AuthGroupfile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user
基本的には1行目のフルパスの部分だけを実際のサーバーに合わせて訂正すれば、そのままコピペでOKです。
フルパスはサイトのURLとは異なり、サーバー内部の最上部から所定の場所までを示すパスとなります。
※フルパスがわからないときは、確認方法を記事の後半でまとめているので参考にしてください。
以下、詳しく知りたい人向けに何を設定しているのかをまとめていきますね。
AuthUserfile /ここにフルパスを記載/.htpasswd
AuthUserfile
では、ログインするためのIDとパスワードが記載されたファイルのパスを指定します。
このパスは先に書いたように「フルパス」である必要があり、相対パスやURLでは動作しないので注意してください。
AuthGroupfile /dev/null
グループごとにアクセス許可/未許可を設定するものがAuthGroupfile
ですが、BASIC認証では基本的にアカウントごとに認証をしていくものですので、グループごとの設定は不要です。
そのため、何も設定しないという意味で/dev/null
と記載しています。
AuthName "Please enter your ID and password"
認証が必要になる領域につける名前をAuthName
で設定します。
名前設定は何でもいいです。
ただし、ここで設定した名前は多くのブラウザにおいてID・パスワード入力欄の上に表示されるので、入力を促すような文言を入れておくのが一般的ですね。
AuthType Basic
AuthType
は名前のとおり、認証方式を設定します。
今回はBasic認証を採用したいのでBasic
と記述しました。
require valid-user
最後に認証をしたユーザーの扱いを定義します。
認証がOKとなった場合にアクセスを許可するようrequire valid-user
と記述して完了です。
.htpasswdと同じディレクトリにアップしましょう。
フルパスがわからないときの確認方法
フルパスがわからない場合でも、簡単に調べることができます。
適当な名前を付けたPHPファイルを用意してください。
(今回は「path.php」とします)
path.php内に下記コードをそのままコピペして保存し、フルパスを知りたい場所にアップロードしてください。
<?php
echo __FILE__;
アップ後、ブラウザでそのファイルのURLにアクセスすると、画面にpath.phpまでのフルパスが表示されているはずです。
たとえば・・・
/home/XXXXXXX/domain.com/public_html/path.php
ここから、最後のpath.php
を除いたものが指定ディレクトリまでのフルパスとなります。
フルパス確認後は、作成したPHPファイルを削除するのを忘れないようにしましょう!
まとめ
アップしたサイトを一部の人にだけ公開したい場合に手軽なのがBasic認証ですよね。
手順に沿ってファイルを用意すれば簡単に設定できますし、認証が不要になった場合は.htpasswdを削除して.htaccess内の該当部分を削除するだけ。
ぜひBasic認証が必要なときには、この記事をみながら設定していってください。
コメント