【Labs】特定のページやディレクトリにパスワードを設定する方法
こんにちは(・∀・)
特定のページやディレクトリにパスワードを設定する方法をご紹介します。
Webサイトにパスワードを設定してアクセス制限を掛ける方法は色々とありますが、今回はBasic認証でパスワードを設定する方法になります。
パスワードの設定方法は.htaccessと.htpasswdの2つのファイルを使用して設定します。既存のHTMLファイルに何か書き込むというようなことはありません。
今回の解説はある程度の知識がある方向けとなっています。Basic認証の設定は過去にやったことあるけど、久しぶりに設定するからどんなんだっけ、というようなときにご利用ください。
特定のページやディレクトリにパスワードを設定する方法
sample
ユーザー名:test
パスワード:test
Basic認証を掛けたいディレクトリに.htaccessファイルを設置します。ルートディレクトリに設置すればサイト全体にBasic認証を設定することになります。既に.htaccessが設置されている場合は次の内容を追記してください。
.htaccess
AuthType Basic
require valid-user
AuthName "認証名"
AuthUserFile ".htpasswdファイルを設置した場所"
書き換えるのは3行目の認証名と4行目の.htpasswdを設置した場所です。ダブルクォーテーションの中を変更してください。ダブルクォーテーションが無いと動作しないサーバもあるのでダブルクォーテーションは記述しておくと良いと思います。
4行目の.htpasswdを設置した場所はフルパスを記述します。わからない場合は次の方法で知ることが出来ます。
.htpasswdを設置したい場所に次の内容を記述したphpファイルをアップロードします。
<?php
echo __FILE__;
?>
そのphpファイル、例えばindex.phpにアクセスすると、そのphpファイルが設置された場所のパスが表示されます。index.phpの部分を.htpasswdに変更すると.htpasswdのフルパスになります。
/home/users/○○○/labs/basic-authentication/index.php
↓
/home/users/○○○/labs/basic-authentication/.htpasswd
.htpasswd
ユーザー名:パスワード
ユーザー名:パスワード
ユーザー名:パスワード
パスワードは「ハッシュ化」したパスワードとなります。パスワードをハッシュ化するにはこちらのWebサイト、基本認証用パスワード暗号化がわかりやすいと思います。パスワードは必要な分だけ作ることが出来ます。
.htpasswdはどこに設置しても機能しますが、Web上で公開されないディレクトリに設置するとセキュリティはアップします。