サイトにBasic認証を設定するには、.htaccessファイルと.htpasswdファイルを設定します。
手順
例として、サイトのディレクトリ「/home/hoge/html/」へBasic認証をかけてみます。
.htaccessファイルと.htpasswdファイルを作成し、規定の場所へ配置する流れになります。
① .htaccessファイルを作成する
1 2 3 4 5 6 7 8 |
<Files ~ "^\.ht"> Deny from all </Files> AuthUserfile /フルパス/.htpasswd AuthGroupfile /dev/null AuthName "Please enter your ID and password" AuthType Basic Require valid-user |
AuthUserfileのパスは必ずルートフォルダからのフルパスにしてください。
今回の例だと、「/home/hoge/html/.htpasswd」となります。
設定の詳細を知りたい方は、以下「Basic認証の設定の説明」をご覧ください。
② .htpasswdファイルを作成する
1 |
username:us3HhKtHHqM0U |
IDとパスワードをコロンでつないで記述します。
パスワードは暗号化した文字列を指定する必要がありますが、暗号化した文字列を生成してくれるサイトがありますので そちらをご利用ください。
.htpasswd生成 | ベーシック認証用のパスワードを一発作成 | すぐに使える便利なWEBツール | Tech-Unlimited
Apacheでベーシック認証を設定する際のパスワードを生成します。サクッと作成したら.htpasswdファイルに貼り付けるだけ。
複数のIDを設定したい場合は、ID:パスワードのセットを1行ずつ記述してください。
③ Basic認証をかけたいサイトのディレクトリへ上記2ファイルを配置する
(例)サイトのディレクトリが/home/hoge/html/の場合
/home/hoge/html/
-index.html
-.htaccess ←配置
-.htpasswd ←配置
これでBasic認証が設定されます。
実際にブラウザからサイトへアクセスして、認証がかかるか確認してください。
上記のようなログインダイアログが表示されれば成功です。
Basic認証の設定の説明
Basic認証の設定の意味を理解したい方は、以下をご覧ください。
パラメータの意味
パラメータ | 意味 |
---|---|
AuthUserfile | パスワードファイルの場所を指定する ※サーバのルートディレクトリからのフルパスで書く必要あり。 |
AuthGroupfile | グループごとにアクセスを制御する場合の設定 「/dev/null」はグループごとのアクセス制御はしないという意味 |
AuthName | ダイアログに表示したいメッセージを指定する ※日本語だと文字化けします。 |
AuthType | 認証タイプを指定する ※BasicまたはDigestが指定可。 |
Require | valid-userを指定すると.htpasswdに設定されたIDとパスワードがあっていれば認証OKとなる。 (user xxxxx とかにすると、指定したユーザしか認証されなくなります) |
Filesタグについて
1 2 3 |
<Files ~ "^\.ht"> Deny from all </Files> |
という箇所は、.htaccessファイルと.htpasswdファイルを外部からアクセス不可とする設定の記述です。 お決まりで書いておきましょう
トラブルシューティング
うまく機能しない場合は、以下項目を確認してください。
「500 Internal Server Error」と表示されていう場合は、設定などに何かしらミスがあります。
- 文字コードをUTF8で作成していない
- ファイルパーミッションが間違っている(644以上になっているか?)
- AuthUserfileで.htpasswdへのパスが正しくない(フルパスで書かれているか?)
- アスキーモードでFTP転送しているか(バイナリモードになっていないか?)
- 単なるキーパンチミス(ファイル名、設定内容)
- ファイル名が「htaccess.txt」になっている(拡張子のみで「.htaccess」が正です。)
- .htaccessが使える環境であるか?
備考
- .htaccessファイルを配置したフォルダ配下は全てBasic認証の対象となります。
- .htaccessファイルはいろいろとルールがありますので、以下ページも併せてご覧ください。
⇒ [htaccess] .htaccessの書き方
コメント