Basic認証は、WebサイトやWebページの特定ディレクトリにアクセスする際に、ユーザー名とパスワードの入力を求める、サーバーレベルのアクセス制限の仕組みです。
制作途中のサイト、クライアントへの確認用URL、テスト環境など、特定の相手だけに一時的にアクセスを許可したい場面で使われます。
ユーザー名とパスワードを入力するだけで、Basic認証に必要な
.htpasswd と
.htaccess
の記述を自動生成します。制作中サイト・テスト環境・クライアント確認用URLの一時保護に使えます。生成されたコードをコピーしてサーバーに設置するだけで完了です。
フルパスが分からない場合は、仮のパスのまま生成して後から置き換えできます。
wp-config.php
と同じ階層に置く場合が多いため、ABSPATH
定数の値がそのまま参考になります。
<?php phpinfo();
?>
とだけ書いたPHPファイルをアップロードしてブラウザで開くと、DOCUMENT_ROOT
の値からフルパスを確認できます。
以下の内容をコピーし、.htpasswd
という名前のファイルに保存して、上記で指定したフルパスの場所にアップロードしてください。
admin:$apr1$........
htpasswd.txt
として保存されます。
そのままではBasic認証用ファイルとして使えません。アップロード前に、ファイル名を
.htpasswd
に変更してください。.htpasswd.txt
になっていないかも確認してください。
以下の内容をコピーし、制限をかけたいディレクトリの
.htaccess
ファイルに追記(または新規作成)してください。
AuthType Basic
AuthName "Please enter your username and password"
AuthUserFile /home/user/public_html/.htpasswd
Require valid-user
htaccess.txt
として保存されます。そのままでは
.htaccess
設定として使えません。設置前に、ファイル名を
.htaccess
に変更してください。.htaccess.txt
になっていないかも確認してください。
上のツールで、Basic認証に必要な .htpasswd と .htaccess の記述を生成できます。この先では、フルパスの確認方法、設置手順、500エラーの原因、robots.txtやnoindexとの違いなどを補足しています。すでに設置方法が分かっている場合は、生成コードをコピーして設定作業へ進んでください。
Basic認証は、WebサイトやWebページの特定ディレクトリにアクセスする際に、ユーザー名とパスワードの入力を求める、サーバーレベルのアクセス制限の仕組みです。
制作途中のサイト、クライアントへの確認用URL、テスト環境など、特定の相手だけに一時的にアクセスを許可したい場面で使われます。
Basic認証の設定には、2つのファイルが必要です。それぞれの役割を理解しておくと、トラブルが起きたときに原因を特定しやすくなります。
AuthUserFile
の値には .htpasswd
のフルパスを正確に記述する必要があります。
フルパスとは、サーバー上のルートディレクトリ(/)から始まるファイルの場所の記述です。例えば
/home/example/public_html/.htpasswd
のような形式になります。
.htaccess の
AuthUserFile
には、このフルパスを正確に記述しなければなりません。相対パスや
URL 形式(https://〜)では動作しません。
wp-config.php
と同じ階層に .htpasswd
を置く場合は、ABSPATH
定数の値がそのまま参考になります。
<?php phpinfo(); ?>
とだけ書いたPHPファイルをアップロードして開くと
DOCUMENT_ROOT
の値を確認できます。確認後は必ず削除してください。
.htpasswd
というファイル名で保存する
.htpasswd
を指定したフルパスの場所にFTPまたはファイルマネージャーでアップロードする
.htaccess
に追記する(既存の .htaccess
がある場合は末尾に追記)
AuthUserFile
に記述したパスが実際のファイルの場所と一致していない場合、認証が動作しません。フルパスを再確認してください。
.htaccess
は、認証をかけたいディレクトリに設置する必要があります。上位のディレクトリに設置しても、意図した制限がかからないことがあります。
制作中サイトやクライアント確認用URLを第三者に見せたくない場合は、Basic認証でアクセス自体を制限するのが有効です。一方、すでに公開・インデックスされているページを検索結果から外したい場合は、noindex、Search Console、robots.txtの役割を分けて確認してください。robots.txtは主にクロール制御、noindexはインデックス制御、Basic認証はアクセス制限のための設定です。
Basic認証はユーザー名とパスワードをBase64エンコードして送信する仕組みです。暗号化はされていないため、HTTPのままで使うと通信経路上で認証情報が保護されにくくなります。
HTTPS環境では通信全体が暗号化されるため、Basic認証の情報も保護されます。現在の多くのサーバーではSSL証明書が標準的に使えるため、Basic認証はHTTPS環境で使うことを推奨します。
.htpasswd
はユーザー名とハッシュ化されたパスワードを保存するファイルです。.htaccess
は、どのディレクトリにBasic認証をかけるか、どの
.htpasswd
を参照するかを指定するファイルです。
ABSPATH
などから確認できます。分からない場合は、いったん仮のパスで生成し、設置時に正しいフルパスへ置き換えてください。
.htpasswd
のフルパス間違い、.htaccess
の記述位置、全角スペースの混入、サーバーが
.htaccess
を許可していないことなどが原因になりやすいです。エラーが出た場合は、まず
.htaccess
を元に戻せるようにバックアップを取ってから作業してください。