Webページにアクセス制限を付ける方法
今回は、アクセス制限付きのページを作る方法を調べたのでまとめておきます。アクセス制限付きのページはIDとPasswordがなければ閲覧できないページを作ると言う感じです。不特定多数に公開しないページなどを作る場合は必須です。
例えば、http: //www.secret.jp/secret/index.html に接続しようとすると、パスワード認証を求められるページを作成していきます。まず、アクセス制限をするためのディレクトリ「 secret 」を作ります。
$mkdir secret
このsecret以下のディレクトリにはアクセス制限がかかります。この中にアクセス制限をかけたいページを作成していきます。作成した「 secret 」ディレクトリの中に適当なページを1つ作っておきます。普通にindex.htmlとかにしておきます。
<html> <meta charset="utf-8"> <head> <title>秘密のページ</title> </head> <body> <h1>秘密のページです.</h1> <p>ここは、秘密のページです. アクセス制限がかかっています.</p> </body> </html>
そして、アクセス制限を設定するために必要なファイル「 .htaccess 」、「 .htpasswd 」を作成します。まず、最初に「 .htaccess 」を作成します。(この2つは隠しファイルになります)
$vim .htaccess
ターミナルなどで、上記の名前で作成します。内容は以下を参考にして下さい。
AuthUserFile /home/secret/ .htpasswd AuthGroupFile /dev/null AuthName "SecretArea" AuthType Basic require valid-user <Files ~ "^.(htpasswd|htaccess)$"> deny from all </Files>
一応、ファイルの説明を書いときます。
AuthUserFile (.htpasswdがある場所のパス) .htpasswd AuthGroupFile BASIC認証では必要ないので、/dev/nullにしておく AuthName パスワード認証画面で表示される英数字を入れる AuthType Basic認証なので、"Basic"にしておく require 認証するユーザーを記載する。 "valid-user"と書くとAuthUserFileで指定したファイルを参照する 今回は、.htpasswdに書くので、"valid-user"で問題なし。
続いて、「 .htpasswd 」を作成します。
$vim .htpasswd
以下は見本です。
user1:SwnHmMvcCs/UQ user2:k62AMIYw2uAS6
当然、パスワードは暗号化します。暗号化の方法は以下のページでIDとパスワードを打ち込んで、出力結果をペーストするのが楽だと思います。
ルフトツールズさん、便利なWebページをありがとうございます。
最終的にディレクトリの中身は以下のようになっていれば大丈夫です。
secret ├── .htaccess ├── .htpasswd └── index.html
ここまで来れば、今回作成した「 secret 」ディレクトリをそのまま公開サーバーにあげれば、アクセスしたときに認証を求められます。
IDとパスワードを入力して、合っていればページが表示されます。