.htpasswdの作成
.htpasswdファイルの保存場所は、public_htmlより上位フォルダへ作成。.htpasswdファイル用の適当なフォルダを作成しておくとよい。
新規作成の場合は、"-c" オプションを付ける。
user1 を作成
# htpasswd -c /home/user/pwd/.htpasswd user1
パスワードを入力すると.htpasswdに user1 が作成される。
# New password: # Re-type new password: # Adding password for user user1
ユーザを追加する場合は、"-c" オプションは付けない。(-c をつけると以前の情報が消えてしまう)
user2 を追加する
# htpasswd /home/user/pwd/.htpasswd user2
また、パスワードの変更は同様の手順で上書きされる。
user1 のパスワードを変更
# htpasswd /home/user/pwd/.htpasswd user1
.htaccessの作成
.htaccessはアクセス制御を行いたいフォルダに置く。例えば、.htpasswdを利用したパスワードを設定したいだけなら、下のようになる。
AuthUserFile /home/user/pwd/.htpasswd AuthGroupFile /dev/null AuthName "Secure site" AuthType Basic require valid-user
各項目の概略
AuthUserFile | パスワードファイルの場所 |
AuthGroupFile | グループファイルの指定、必要ないので "/dev/null" |
AuthName | 認証時のメッセージ |
AuthType | 認証方法、Basic認証を指定 |
require | valid-userは全てのユーザ、"user [username]"で任意のユーザ |
また、Basic認証とIPアドレスによる認証を行いたい場合は下のように記述する。
Order Deny,Allow Deny from all Allow from 192.168.1 Allow from 127.0.0.1 AuthUserFile /home/user/pwd/.htpasswd AuthGroupFile /dev/null AuthName "Secure site" AuthType Basic require valid-user
上記は、指定したIPアドレスとBasic認証の両方が一致しなければアクセスできないようになる
どちらか片方の条件を満たしたら許可したい場合は、"Satisfy Any" の記述を加える。
どちらか片方の条件を満たしたら許可したい場合は、"Satisfy Any" の記述を加える。
Order Deny,Allow Deny from all Allow from 192.168.1 Allow from 127.0.0.1 AuthUserFile /home/user/pwd/.htpasswd AuthGroupFile /dev/null AuthName "Secure site" AuthType Basic require valid-user Satisfy Any
また、携帯やスマートフォンなどからの制御も行いたい場合は次のような記述方法もある。
SetEnvIf X-UP-SUBNO ^05001234567890_ag\.ezweb\.ne\.jp$ mobilephone SetEnvIf X-UP-SUBNO ^05012345678901_ae\.ezweb\.ne\.jp$ mobilephone Order Deny,Allow Deny from all Allow from env=mobilephone Allow from 192.168.1 Allow from 127.0.0.1 AuthUserFile /home/user/pwd/.htpasswd AuthGroupFile /dev/null AuthName "Secure site" AuthType Basic require user user1 Satisfy Any
上記は指定されたユーザ(user1)での au のサブクラスID の認証を加え、指定された契約者IDの端末または指定されたIPアドレスで認証、それ以外はBasic認証によるアクセス制御となる。