🔒 Basic認証・htpasswd生成ツール

公開制限 サーバー設定 コピペ可

ユーザー名とパスワードを入力するだけで、Basic認証に必要な .htpasswd.htaccess の記述を自動生成します。制作中サイト・テスト環境・クライアント確認用URLの一時保護に使えます。生成されたコードをコピーしてサーバーに設置するだけで完了です。

📄 .htpasswd の1行 📄 .htaccess のBasic認証設定 ✅ 設置後の確認手順
Basic認証ファイルを生成
🔒 認証情報とパスの設定

フルパスが分からない場合は、仮のパスのまま生成して後から置き換えできます。

📂 フルパスの確認方法
  1. コントロールパネルのファイルマネージャーで確認(推奨)
    エックスサーバー・ConoHa WING・さくらなど主要レンサバはコンパネからファイルマネージャーを開き、設置先フォルダを選択するとパスが表示されます。
  2. FTPクライアント(FileZillaなど)で確認
    FTPでサーバーに接続し、設置先ディレクトリを選択するとステータスバーにフルパスが表示されます。
  3. WordPress環境なら ABSPATH を参考に
    WordPressが入っているサーバーでは、wp-config.php と同じ階層に置く場合が多いため、ABSPATH 定数の値がそのまま参考になります。
  4. phpinfo() で DOCUMENT_ROOT を確認
    <?php phpinfo(); ?> とだけ書いたPHPファイルをアップロードしてブラウザで開くと、DOCUMENT_ROOT の値からフルパスを確認できます。
    ⚠️ 確認後は必ずファイルを削除してください。サーバー情報が外部から参照できる状態になります。
📄 1. .htpasswd に保存する内容

以下の内容をコピーし、.htpasswd という名前のファイルに保存して、上記で指定したフルパスの場所にアップロードしてください。

admin:$apr1$........
⚠️ サーバーへアップロードする前に、必ずファイル名を変更してください。
ダウンロード直後のファイル名は htpasswd.txt として保存されます。 そのままではBasic認証用ファイルとして使えません。アップロード前に、ファイル名を .htpasswd に変更してください。
Windowsでは拡張子が非表示になっていることがあるため、 .htpasswd.txt になっていないかも確認してください。
📄 2. .htaccess に貼り付ける内容

以下の内容をコピーし、制限をかけたいディレクトリの .htaccess ファイルに追記(または新規作成)してください。

AuthType Basic
AuthName "Please enter your username and password"
AuthUserFile /home/user/public_html/.htpasswd
Require valid-user
⚠️ サーバーへ設置する前に、必ずファイル名を変更してください。
ダウンロード直後のファイル名は htaccess.txt として保存されます。そのままでは .htaccess 設定として使えません。設置前に、ファイル名を .htaccess に変更してください。
Windowsでは拡張子が非表示になっていることがあるため、 .htaccess.txt になっていないかも確認してください。

✅ 次にやること

  1. .htpasswd を指定したフルパスの場所にアップロードする
  2. .htaccess を制限したいディレクトリに設置する(既存の .htaccess がある場合は末尾に追記)
  3. シークレットウィンドウ(プライベートブラウザ)でそのURLを開き、認証ダイアログが出るか確認する
  4. 500エラーが出た場合は、フルパスの記述ミスと .htaccess の設置場所を確認する
スポンサーリンク
ここから詳しい解説

生成したBasic認証設定を設置する前に、確認ポイントをまとめています

上のツールで、Basic認証に必要な .htpasswd と .htaccess の記述を生成できます。この先では、フルパスの確認方法、設置手順、500エラーの原因、robots.txtやnoindexとの違いなどを補足しています。すでに設置方法が分かっている場合は、生成コードをコピーして設定作業へ進んでください。

💡 Basic認証とは

Basic認証は、WebサイトやWebページの特定ディレクトリにアクセスする際に、ユーザー名とパスワードの入力を求める、サーバーレベルのアクセス制限の仕組みです。

制作途中のサイト、クライアントへの確認用URL、テスト環境など、特定の相手だけに一時的にアクセスを許可したい場面で使われます。

Basic認証は簡易的な制限手段として有用ですが、HTTPS環境での利用が前提となります。また、認証情報の管理や強固なアクセス制御が必要な場合は、サーバーやアプリケーション側のより高度な認証の使用を検討してください。

📄 .htpasswdと.htaccessの役割

Basic認証の設定には、2つのファイルが必要です。それぞれの役割を理解しておくと、トラブルが起きたときに原因を特定しやすくなります。

  • .htpasswd:ユーザー名とハッシュ化されたパスワードを保存するファイルです。Webから直接アクセスできない場所(公開ディレクトリの外)に置くのが基本です。1行に1アカウントを記述でき、複数ユーザーを追加することもできます。
  • .htaccess:どのディレクトリにBasic認証をかけるか、どの .htpasswd を参照するかを指定するファイルです。制限をかけたいディレクトリに設置します。AuthUserFile の値には .htpasswd のフルパスを正確に記述する必要があります。

📂 フルパス(絶対パス)とは何か

フルパスとは、サーバー上のルートディレクトリ(/)から始まるファイルの場所の記述です。例えば /home/example/public_html/.htpasswd のような形式になります。

.htaccess の AuthUserFile には、このフルパスを正確に記述しなければなりません。相対パスや URL 形式(https://〜)では動作しません。

フルパスの確認方法

  • サーバーパネル / ファイルマネージャーで確認(推奨):エックスサーバー・ConoHa WING・さくらインターネットなどの主要レンタルサーバーでは、コントロールパネルのファイルマネージャーから設置先フォルダを選択するとパスが表示されます。
  • FTPクライアント(FileZillaなど)で確認:FTPでサーバーに接続し、設置先ディレクトリを選択するとステータスバーにフルパスが表示されます。
  • WordPress環境なら ABSPATH を参考にwp-config.php と同じ階層に .htpasswd を置く場合は、ABSPATH 定数の値がそのまま参考になります。
  • phpinfo() で DOCUMENT_ROOT を確認<?php phpinfo(); ?> とだけ書いたPHPファイルをアップロードして開くと DOCUMENT_ROOT の値を確認できます。確認後は必ず削除してください。

🛠️ Basic認証の設置手順

  1. 上のツールでユーザー名・パスワード・フルパスを入力し、コードを生成する
  2. 生成された .htpasswd の内容をテキストファイルに貼り付け、.htpasswd というファイル名で保存する
  3. .htpasswd を指定したフルパスの場所にFTPまたはファイルマネージャーでアップロードする
  4. 生成された .htaccess の内容を、制限をかけたいディレクトリの .htaccess に追記する(既存の .htaccess がある場合は末尾に追記)
  5. シークレットウィンドウ(プライベートブラウジング)でそのURLを開き、認証ダイアログが表示されることを確認する
作業前にバックアップを取ってください。既存の .htaccess を変更する場合は、元のファイルをバックアップしておくと、500エラーが起きたときに素早く元に戻せます。

⚠️ Basic認証が効かない・500エラーになる原因

  • .htpasswd のフルパスが間違っているAuthUserFile に記述したパスが実際のファイルの場所と一致していない場合、認証が動作しません。フルパスを再確認してください。
  • .htaccess の設置場所が違う.htaccess は、認証をかけたいディレクトリに設置する必要があります。上位のディレクトリに設置しても、意図した制限がかからないことがあります。
  • 全角スペースや文字化けが混ざっている:コピー時に全角スペースや不正な文字が混入すると、500エラーの原因になります。テキストエディタで確認してください。
  • サーバーが .htaccess を許可していない:一部のサーバーやホスティングでは、.htaccess による設定変更が制限されている場合があります。サーバーのドキュメントを確認してください。
  • Apache以外の環境:.htaccess は Apache(および LiteSpeed など一部の互換サーバー)向けの設定ファイルです。Nginx 環境では .htaccess は動作しないため、nginx.conf への設定が必要です。
  • 500エラーが出た場合:まず .htaccess を元のバックアップに戻し、エラーを解消してから再設置してください。

🔍 robots.txtやnoindexとの違い

  • Basic認証:サーバーレベルでアクセス自体を制限します。認証に通らない限り、ページの内容は閲覧できません。
  • robots.txt:検索エンジンのクローラーへの「クロールしないでください」という指示です。クロールを行儀よく制御するものであり、アクセス自体を遮断するものではありません。人間や悪意あるボットには効果がない点に注意してください。
  • noindex(メタタグ・X-Robots-Tag):検索エンジンへの「インデックスしないでください」という指示です。クロール自体は行われますが、検索結果への掲載を防ぎます。

制作中サイトやクライアント確認用URLを第三者に見せたくない場合は、Basic認証でアクセス自体を制限するのが有効です。一方、すでに公開・インデックスされているページを検索結果から外したい場合は、noindex、Search Console、robots.txtの役割を分けて確認してください。robots.txtは主にクロール制御、noindexはインデックス制御、Basic認証はアクセス制限のための設定です。

🔐 HTTPS環境で使うべき理由

Basic認証はユーザー名とパスワードをBase64エンコードして送信する仕組みです。暗号化はされていないため、HTTPのままで使うと通信経路上で認証情報が保護されにくくなります。

HTTPS環境では通信全体が暗号化されるため、Basic認証の情報も保護されます。現在の多くのサーバーではSSL証明書が標準的に使えるため、Basic認証はHTTPS環境で使うことを推奨します。

Basic認証・htpasswd生成に関するよくある質問

Q. Basic認証とは何ですか?
Basic認証は、Webサイトや特定のディレクトリにアクセスする際に、ユーザー名とパスワードの入力を求める簡易的なアクセス制限です。制作中サイト、テスト環境、クライアント確認用URLの一時保護などに使われます。
Q. .htpasswdと.htaccessの違いは何ですか?
.htpasswd はユーザー名とハッシュ化されたパスワードを保存するファイルです。.htaccess は、どのディレクトリにBasic認証をかけるか、どの .htpasswd を参照するかを指定するファイルです。
Q. .htpasswdのフルパスが分からない場合はどうすればよいですか?
サーバーパネル、ファイルマネージャー、FTPクライアント、WordPressの ABSPATH などから確認できます。分からない場合は、いったん仮のパスで生成し、設置時に正しいフルパスへ置き換えてください。
Q. Basic認証が効かない、または500エラーになる原因は何ですか?
.htpasswd のフルパス間違い、.htaccess の記述位置、全角スペースの混入、サーバーが .htaccess を許可していないことなどが原因になりやすいです。エラーが出た場合は、まず .htaccess を元に戻せるようにバックアップを取ってから作業してください。
Q. Basic認証を設定すれば検索エンジンに見られませんか?
Basic認証が正しく設定されているページは、通常は認証なしで閲覧できないため、第三者や検索エンジンからのアクセスを制限できます。ただし、公開済みページのインデックス削除やクロール制御には、状況に応じてnoindex、robots.txt、Search Consoleでの確認も検討してください。
Q. Basic認証はHTTPS環境で使うべきですか?
はい。Basic認証はユーザー名とパスワードを使うため、HTTPS環境で利用することを推奨します。HTTPのまま使うと、通信経路上で認証情報が保護されにくくなります。

🔄 続けて使われることが多いツール