[htaccess] Basic認証を設定する

2018年12月31日

サイトにBasic認証を設定するには、.htaccessファイルと.htpasswdファイルを設定します。

手順

例として、サイトのディレクトリ「/home/hoge/html/」へBasic認証をかけてみます。

.htaccessファイルと.htpasswdファイルを作成し、規定の場所へ配置する流れになります。

① .htaccessファイルを作成する

AuthUserfileのパスは必ずルートフォルダからのフルパスにしてください。
今回の例だと、「/home/hoge/html/.htpasswd」となります。

設定の詳細を知りたい方は、以下「Basic認証の設定の説明」をご覧ください。

② .htpasswdファイルを作成する

IDとパスワードをコロンでつないで記述します。

パスワードは暗号化した文字列を指定する必要がありますが、暗号化した文字列を生成してくれるサイトがありますので そちらをご利用ください。

https://tech-unlimited.com/makehtpasswd.html

複数のIDを設定したい場合は、ID:パスワードのセットを1行ずつ記述してください。

③ Basic認証をかけたいサイトのディレクトリへ上記2ファイルを配置する

(例)サイトのディレクトリが/home/hoge/html/の場合

/home/hoge/html/ -index.html -.htaccess ←配置 -.htpasswd ←配置

これでBasic認証が設定されます。

実際にブラウザからサイトへアクセスして、認証がかかるか確認してください。

Basic認証画面

上記のようなログインダイアログが表示されれば成功です。

Basic認証の設定の説明

Basic認証の設定の意味を理解したい方は、以下をご覧ください。

パラメータの意味

パラメータ意味
AuthUserfileパスワードファイルの場所を指定する
※サーバのルートディレクトリからのフルパスで書く必要あり。
AuthGroupfileグループごとにアクセスを制御する場合の設定
「/dev/null」はグループごとのアクセス制御はしないという意味
AuthNameダイアログに表示したいメッセージを指定する
※日本語だと文字化けします。
AuthType認証タイプを指定する
※BasicまたはDigestが指定可。
Requirevalid-userを指定すると.htpasswdに設定されたIDとパスワードがあっていれば認証OKとなる。
(user xxxxx とかにすると、指定したユーザしか認証されなくなります)

Filesタグについて

という箇所は、.htaccessファイルと.htpasswdファイルを外部からアクセス不可とする設定の記述です。 お決まりで書いておきましょう

トラブルシューティング

うまく機能しない場合は、以下項目を確認してください。

「500 Internal Server Error」と表示されていう場合は、設定などに何かしらミスがあります。

  • 文字コードをUTF8で作成していない
  • ファイルパーミッションが間違っている(644以上になっているか?)
  • AuthUserfileで.htpasswdへのパスが正しくない(フルパスで書かれているか?)
  • アスキーモードでFTP転送しているか(バイナリモードになっていないか?)
  • 単なるキーパンチミス(ファイル名、設定内容)
  • ファイル名が「htaccess.txt」になっている(拡張子のみで「.htaccess」が正です。)
  • .htaccessが使える環境であるか?

備考

  • .htaccessファイルを配置したフォルダ配下は全てBasic認証の対象となります。
  • .htaccessファイルはいろいろとルールがありますので、以下ページも併せてご覧ください。
    [htaccess] .htaccessの書き方

Webhtaccess

Posted by tora