WordPressにBasic認証を設定する方法|初心者でもできる手順と解除・エラー対処法

はじめに

WordPressサイトを公開前の確認用にしたい、制作中のテスト環境を第三者に見られたくない、管理画面への不正アクセスを減らしたい。そうした場面でよく使われるのが「Basic認証」です。

Basic認証を設定すると、WordPressの画面が表示される前に、ブラウザ上でユーザー名とパスワードの入力画面が表示されます。正しいIDとパスワードを入力した人だけがサイトや管理画面にアクセスできるため、公開前サイトや検証環境の簡易的なアクセス制限として便利です。

ただし、Basic認証はあくまで「簡易的な認証」です。SSL化されていないサイトで使う、WordPressログイン対策の代わりにする、本番公開後も解除し忘れる、といった使い方には注意が必要です。この記事では、WordPressにBasic認証を設定する方法、解除手順、よくあるエラーの対処法まで初心者向けに解説します。

1. WordPressのBasic認証とは?できることと設定すべき場面

WordPressのBasic認証とは、WordPress本体のログイン機能とは別に、Webサーバー側でユーザー名とパスワードによるアクセス制限をかける仕組みです。

WordPressのログイン画面に到達する前、またはサイトのページが表示される前に認証画面を出せるため、「そもそもサイトを見せない」「管理画面への入口をもう一段階保護する」といった目的で使われます。

1-1. Basic認証の仕組みを初心者向けに解説

Basic認証は、HTTPの認証方式の一種です。アクセスしたユーザーに対してブラウザがユーザー名とパスワードの入力を求め、サーバー側で認証情報を確認します。認証に成功するとページが表示され、失敗すると「401 Unauthorized」などのエラーが表示されます。

Apache環境では、主に.htaccess.htpasswdという2つのファイルを使って設定します。.htaccessには「どの範囲に認証をかけるか」「どのパスワードファイルを参照するか」を書き、.htpasswdにはユーザー名と暗号化されたパスワードを記述します。Apache公式ドキュメントでも、AuthUserFileは認証に使うユーザー名とパスワード一覧のファイルを指定するディレクティブとされています。Apache HTTP Server

Basic認証の入力情報はBase64でエンコードされる仕組みです。Base64は暗号化ではなく変換に近いため、通信内容を守るにはHTTPS化が重要です。MDNでもBasic認証はユーザーIDとパスワードの組み合わせをBase64で送信する方式として説明されています。MDN Web Docs

1-2. WordPressでBasic認証を使う主な目的

WordPressでBasic認証を使う主な目的は、サイトの閲覧者を一時的に制限することです。

たとえば、制作会社がクライアント確認用のWordPressサイトにBasic認証をかける、リニューアル中のサイトを検索エンジンや一般ユーザーに見せない、テスト環境に外部からアクセスされないようにする、といった使い方があります。

また、wp-login.phpwp-adminにBasic認証をかけることで、WordPressのログイン画面に到達できる人を制限できます。WordPress管理画面は攻撃対象になりやすいため、ログイン画面の前にBasic認証を追加することで、簡易的な二重ロックのような状態を作れます。

1-3. 公開前サイト・テスト環境・会員向けページで使うケース

Basic認証が特に向いているのは、次のようなケースです。

公開前のWordPressサイトでは、デザイン崩れや未完成のページを一般公開したくない場合にBasic認証が役立ちます。クライアントや社内担当者だけにIDとパスワードを共有すれば、限られた人だけが確認できます。

テスト環境やステージング環境でもBasic認証はよく使われます。本番サイトとは別に作った検証用WordPressを外部から見られないようにし、プラグイン更新やテーマ修正の確認に使えます。

会員向けページでもBasic認証を使うことはできます。ただし、本格的な会員管理、ユーザーごとの権限管理、決済連携などが必要な場合は、Basic認証ではなく会員サイト用プラグインやWordPressのユーザー権限機能を検討しましょう。

1-4. WordPressのパスワード保護やログイン制限との違い

WordPressには、投稿や固定ページごとに「パスワード保護」を設定する機能があります。これはページ単位でパスワードを入力させる機能で、WordPressの投稿編集画面から設定できます。

一方、Basic認証はWebサーバー側の認証です。WordPressがページを表示する前に認証を行うため、サイト全体、特定ディレクトリ、管理画面など、WordPressの機能よりも手前の段階でアクセス制限できます。

ログイン制限プラグインは、WordPressログイン画面への攻撃対策に使われます。ログイン試行回数の制限、二段階認証、reCAPTCHAなどを追加できるものがあります。Basic認証はそれらとは役割が異なり、「ログイン画面そのものを見せる前に制限する」ための仕組みです。

2. WordPressにBasic認証を設定する前に確認すること

Basic認証の設定は難しくありませんが、.htaccessの記述ミスやファイルの置き場所の間違いがあると、サイト全体が表示されなくなることがあります。作業前に、設定範囲・サーバー環境・必要なファイル・バックアップを確認しておきましょう。

2-1. Basic認証をかける範囲を決める

まず、Basic認証をどこにかけるかを決めます。

WordPressサイト全体を非公開にしたい場合は、WordPressを設置している公開ディレクトリ全体にBasic認証を設定します。公開前サイトやテスト環境ではこの方法が一般的です。

管理画面だけを保護したい場合は、wp-adminディレクトリやwp-login.phpにBasic認証を設定します。サイトのフロント画面は通常どおり公開し、管理画面へのアクセスだけを制限したい場合に向いています。

特定のページや特定ディレクトリだけを制限したい場合は、対象が「実在するディレクトリ」なのか「WordPressの固定ページURL」なのかを確認します。WordPressの固定ページは実際のHTMLファイルではなく、WordPressのルーティングで表示されているため、単純にページごとの.htaccessを置けない場合があります。

2-2. サーバー環境がApacheかNginxか確認する

Basic認証の設定方法は、サーバーがApacheかNginxかで異なります。

多くのレンタルサーバーではApache、またはApache互換の仕組みで.htaccessが使えます。この場合は、.htaccess.htpasswdを使ってBasic認証を設定できます。WordPress公式ドキュメントでも、Apacheでは.htaccessがディレクトリごとの設定ファイルとして使われ、WordPressのパーマリンク制御にも利用されると説明されています。WordPress Developer Resources

一方、Nginx環境では通常.htaccessは使いません。Nginxではauth_basicauth_basic_user_fileをサーバー設定に記述してBasic認証を設定します。Nginx公式ドキュメントでも、ngx_http_auth_basic_moduleはユーザー名とパスワードを検証してアクセスを制限するモジュールとされています。Nginx

レンタルサーバーを利用している場合は、サーバー管理画面のヘルプやマニュアルで「アクセス制限」「Basic認証」「ディレクトリアクセス制限」といった項目を確認しましょう。

2-3. .htaccessと.htpasswdの役割を理解する

.htaccessは、Apache環境でディレクトリ単位の設定を行うファイルです。WordPressでは、パーマリンク設定のためにWordPressインストール先の直下に.htaccessが作成されていることがあります。

.htpasswdは、Basic認証のユーザー名と暗号化されたパスワードを保存するファイルです。一般的には、公開ディレクトリの外側に置くのが安全です。

たとえば、WordPressの公開ディレクトリが次の場所だとします。

/home/example/example.com/public_html/

この場合、.htpasswdは次のように公開ディレクトリの外に置けると安心です。

/home/example/.htpasswd

公開ディレクトリ内に置く場合は、外部から直接アクセスされないようにサーバー設定で保護されているか確認してください。

2-4. 作業前にバックアップを取る

Basic認証の設定前には、必ず.htaccessのバックアップを取ります。

特にWordPressの.htaccessには、パーマリンク用の重要な記述が含まれていることがあります。誤って削除すると、投稿ページや固定ページで404エラーが出る可能性があります。

バックアップ方法は簡単です。FTPソフトやサーバーのファイルマネージャーで.htaccessをダウンロードし、次のような名前で保存しておきます。

.htaccess_backup_20260619

作業後にエラーが出た場合は、バックアップファイルの内容に戻すことで復旧できます。

2-5. FTPソフト・サーバー管理画面・テキストエディタを準備する

手動でBasic認証を設定する場合は、次のものを準備します。

FTPソフトは、サーバー上の.htaccess.htpasswdをアップロード・編集するために使います。代表的なものにはFileZilla、Cyberduck、WinSCPなどがあります。

サーバー管理画面は、ファイルマネージャーやアクセス制限機能を使う場合に必要です。レンタルサーバーによっては、FTPを使わずに管理画面だけでBasic認証を設定できます。

テキストエディタは、コードを正しく編集するために使います。Windowsのメモ帳でも編集できますが、文字コードや改行コードの問題を避けるため、Visual Studio Codeなどのコード編集に向いたエディタを使うと安心です。

3. WordPress全体にBasic認証を設定する方法

ここでは、Apache環境でWordPressサイト全体にBasic認証を設定する基本手順を解説します。レンタルサーバーのアクセス制限機能を使う場合は後述の「6. レンタルサーバー機能でBasic認証を設定する方法」も参考にしてください。

3-1. .htpasswdを作成する

まず、Basic認証で使う.htpasswdファイルを作成します。

サーバーにSSH接続できる場合は、htpasswdコマンドを使う方法が一般的です。新規作成する場合は、次のように入力します。

Bash
htpasswd -c /home/example/.htpasswd user01

user01の部分がBasic認証のユーザー名です。コマンドを実行するとパスワードの入力を求められ、暗号化されたパスワードが.htpasswdに保存されます。

すでに.htpasswdがあり、ユーザーを追加したい場合は、-cを付けないようにします。

Bash
htpasswd /home/example/.htpasswd user02

-cは新規作成のオプションなので、既存ファイルに対して使うと内容が上書きされることがあります。複数ユーザーを登録する場合は注意しましょう。

3-2. IDと暗号化パスワードを記述する

.htpasswdの中身は、次のような形式になります。

user01:$apr1$xxxxxxxx$xxxxxxxxxxxxxxxxxxxxxx

左側がユーザー名、右側が暗号化されたパスワードです。間はコロンで区切ります。ApacheのAuthUserFileで使うユーザーファイルは、各行に「ユーザー名:暗号化パスワード」の形式で記述されます。Apache HTTP Server

手動で作る場合も、パスワードをそのまま平文で書くのではなく、Apacheが認識できる形式で暗号化された文字列を使います。レンタルサーバーの管理画面からBasic認証を設定する場合は、ユーザー名とパスワードを入力すれば、サーバー側が必要なファイルを自動で作成してくれることが多いです。

3-3. .htpasswdをサーバーにアップロードする

作成した.htpasswdをサーバーにアップロードします。

安全性を考えると、.htpasswdはWordPressの公開ディレクトリ外に置くのがおすすめです。たとえば、公開ディレクトリが次の場所なら、

/home/example/example.com/public_html/

.htpasswdは次のような場所に置きます。

/home/example/.htpasswd

サーバーによっては公開ディレクトリ外にファイルを置けない場合があります。その場合は、レンタルサーバーのマニュアルに従い、指定された場所に配置してください。

3-4. .htaccessにBasic認証のコードを追記する

次に、WordPressのインストール先にある.htaccessにBasic認証のコードを追記します。

WordPressの.htaccessには、次のようなWordPress用の記述が入っていることがあります。

apache
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Basic認証のコードは、通常このWordPress用コードより上に追記します。

apache
AuthType Basic
AuthName "Restricted Area"
AuthUserFile /home/example/.htpasswd
Require valid-user

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

AuthNameは認証画面に表示される領域名です。日本語を使うと環境によって文字化けすることがあるため、英数字で指定するのが無難です。

3-5. AuthUserFileのフルパスを確認して指定する

AuthUserFileには、.htpasswdのフルパスを指定します。ここを間違えると、正しいIDとパスワードを入力しても認証に失敗したり、500エラーが出たりします。

フルパスとは、サーバー内での絶対パスのことです。URLではありません。

正しい例は次のような形式です。

apache
AuthUserFile /home/example/.htpasswd

間違った例は次のような形式です。

apache
AuthUserFile https://example.com/.htpasswd

Apache公式ドキュメントでも、AuthUserFilefile-pathはユーザーファイルへのパスであり、絶対パスでない場合はServerRootからの相対パスとして扱われると説明されています。Apache HTTP Server

フルパスがわからない場合は、サーバー管理画面の「サーバー情報」「ファイルマネージャー」「PHP設定」などで確認します。レンタルサーバーによっては、アクセス制限画面で自動的に設定されるため、手動で調べる必要がないこともあります。

3-6. ブラウザで認証画面が表示されるか確認する

設定が完了したら、ブラウザでWordPressサイトにアクセスします。

認証画面が表示され、設定したIDとパスワードでサイトが表示されれば成功です。確認時は、ログイン済みのブラウザだけでなく、シークレットウィンドウや別ブラウザ、スマートフォンでも確認しましょう。

認証画面が表示されない場合は、.htaccessが有効になっていない、設置場所が違う、サーバーがNginxで.htaccessに対応していない、レンタルサーバー側の設定が優先されている、といった可能性があります。

4. WordPress管理画面・ログイン画面にBasic認証を設定する方法

サイト全体ではなく、WordPressの管理画面やログイン画面だけにBasic認証を設定することもできます。公開中のサイトでは、フロント画面を訪問者に見せたまま、管理画面へのアクセスだけを制限できるため便利です。

4-1. wp-adminにBasic認証をかける方法

wp-adminディレクトリにBasic認証をかける場合は、wp-adminフォルダ内に.htaccessを作成し、次のように記述します。

apache
AuthType Basic
AuthName "Admin Area"
AuthUserFile /home/example/.htpasswd
Require valid-user

これで、https://example.com/wp-admin/にアクセスしたときにBasic認証が表示されます。

ただし、WordPressではwp-admin配下のadmin-ajax.phpがテーマやプラグインの処理で使われることがあります。wp-admin全体にBasic認証をかけると、フロント画面の一部機能に影響する場合があるため、後述のadmin-ajax.php除外設定も確認してください。

4-2. wp-login.phpにBasic認証をかける方法

WordPressのログイン画面であるwp-login.phpだけにBasic認証をかけたい場合は、WordPress直下の.htaccessに次のように追記します。

apache
<Files "wp-login.php">
AuthType Basic
AuthName "Login Area"
AuthUserFile /home/example/.htpasswd
Require valid-user
</Files>

この設定では、サイトの通常ページにはBasic認証を表示せず、wp-login.phpにアクセスしたときだけ認証画面が表示されます。

管理画面への不正ログイン対策としては、wp-login.phpへのBasic認証、ログイン試行回数制限、二段階認証、強力なパスワード、WordPress本体・テーマ・プラグインの更新を組み合わせると効果的です。

4-3. 管理画面だけ保護するメリット

管理画面だけにBasic認証をかけるメリットは、訪問者への影響を抑えながら管理画面の入口を保護できることです。

サイト全体にBasic認証をかけると、一般ユーザーも検索エンジンもサイトを閲覧できなくなります。そのため、本番公開中のブログやコーポレートサイトには向きません。

一方、wp-login.phpwp-adminだけを保護すれば、通常のページは公開したまま、管理者ログインへのアクセスだけを制限できます。WordPressのセキュリティ対策として、比較的導入しやすい方法です。

4-4. admin-ajax.phpでエラーが出る場合の対処法

wp-admin全体にBasic認証をかけたあと、問い合わせフォーム、絞り込み検索、カート機能、テーマの一部表示などが動かなくなる場合があります。原因として多いのが、admin-ajax.phpへのアクセスまでBasic認証でブロックされているケースです。

Apache 2.4系でadmin-ajax.phpを除外する場合は、wp-admin/.htaccessに次のような記述を追加します。

apache
<Files "admin-ajax.php">
Require all granted
Satisfy any
</Files>

サーバーによっては次のような旧式の記述が必要な場合もあります。

apache
<Files "admin-ajax.php">
Order allow,deny
Allow from all
Satisfy any
</Files>

ただし、Apacheのバージョンやサーバー設定によって有効な書き方が異なります。設定後にフロント画面のフォームや動的機能が正しく動くか確認しましょう。

4-5. ログインできなくなったときの復旧手順

Basic認証を設定したあとにWordPress管理画面へログインできなくなった場合は、慌てずにFTPソフトやサーバーのファイルマネージャーから設定を戻します。

まず、WordPress直下またはwp-admin内の.htaccessを確認します。追加したBasic認証の記述を一時的に削除するか、ファイル名を次のように変更します。

.htaccess

.htaccess_off

これでBasic認証が無効化される場合があります。サイトが表示されるようになったら、AuthUserFileのパス、.htpasswdの場所、ユーザー名とパスワードの記述を確認してください。

サーバー管理画面のアクセス制限機能で設定した場合は、管理画面から対象ディレクトリの制限をOFFにします。

5. プラグインでWordPressにBasic認証を設定する方法

初心者で.htaccessを編集するのが不安な場合は、プラグインでBasic認証を設定する方法もあります。コードを直接編集せずに管理画面から設定できるため、公開前サイトや簡易的な閲覧制限に便利です。

5-1. プラグインを使うメリット・デメリット

プラグインを使うメリットは、設定が簡単なことです。WordPress管理画面からインストールし、IDとパスワードを入力するだけでBasic認証を有効化できるものがあります。

一方で、デメリットもあります。WordPressが正常に動いていることが前提になるため、WordPress本体にアクセスできない状態では使えません。また、プラグインの更新停止、WordPress最新版との互換性、他のセキュリティ系プラグインとの競合にも注意が必要です。

サーバー側で確実に制限したい場合は、.htaccessやサーバー管理画面のアクセス制限機能を使う方が適していることがあります。

5-2. Basic認証プラグインの選び方

Basic認証プラグインを選ぶときは、次の点を確認します。

まず、最終更新日が古すぎないかを確認します。長期間更新されていないプラグインは、最新のWordPressやPHPで正常に動かない可能性があります。

次に、使用中のWordPressバージョンとの互換性を確認します。WordPress公式プラグインディレクトリでは、対応バージョンや有効インストール数、レビューを確認できます。

また、必要以上に多機能なプラグインを選ばないことも大切です。Basic認証だけを設定したいなら、機能がシンプルで設定項目がわかりやすいものを選ぶと管理しやすくなります。

5-3. プラグインのインストール手順

WordPress管理画面からプラグインをインストールする基本手順は次のとおりです。

まず、WordPress管理画面にログインし、「プラグイン」から「新規追加」を開きます。検索欄に「Basic Auth」「Basic認証」「Password Protected」などのキーワードを入力します。

目的に合うプラグインが見つかったら、「今すぐインストール」をクリックし、続けて「有効化」をクリックします。

有効化後、管理画面の「設定」メニューやプラグイン一覧に設定画面へのリンクが表示されることが多いです。

5-4. IDとパスワードの設定手順

プラグインの設定画面を開き、Basic認証を有効化します。

一般的には、次のような項目を設定します。

認証を有効にするかどうか、ユーザー名、パスワード、認証メッセージ、除外するページやログインユーザーへの表示条件などです。

設定後は、ログインしていない状態でサイトにアクセスして確認します。シークレットウィンドウを使うと、WordPressにログインしていない訪問者として確認しやすくなります。

5-5. プラグインでBasic認証を解除する方法

プラグインで設定したBasic認証を解除するには、プラグインの設定画面でBasic認証をOFFにします。

解除後、シークレットウィンドウや別ブラウザでサイトを開き、認証画面が表示されないことを確認してください。

プラグインを完全に使わない場合は、設定をOFFにしたうえでプラグインを無効化し、不要であれば削除します。ただし、削除前にサイト表示に問題がないか確認しておくと安心です。

5-6. プラグインが使えない場合の注意点

プラグインでBasic認証を設定できない場合は、サーバー側で制限されている、キャッシュプラグインと競合している、WordPress本体が正常に動作していない、PHPバージョンとの相性が悪い、といった原因が考えられます。

また、WordPress管理画面自体に入れない場合、プラグインの設定画面にもアクセスできません。このような場合は、FTPソフトやサーバー管理画面から.htaccessを編集するか、レンタルサーバーのアクセス制限機能を使う方法を検討しましょう。

6. レンタルサーバー機能でBasic認証を設定する方法

レンタルサーバーによっては、サーバー管理画面からBasic認証を設定できます。初心者には、手動で.htaccessを編集するよりもサーバー機能を使う方法がおすすめです。

6-1. サーバー管理画面から設定するメリット

サーバー管理画面からBasic認証を設定するメリットは、ファイルの記述ミスを避けやすいことです。

.htaccess.htpasswdを自分で作成しなくても、対象ディレクトリ、ユーザー名、パスワードを入力するだけで設定できる場合があります。

また、解除も管理画面から簡単に行えます。公開前サイトに一時的にBasic認証をかける場合は、サーバー機能を使うと管理しやすくなります。

ただし、サーバー機能で生成された.htaccessと自分で編集した.htaccessが競合する場合があります。手動設定と併用するときは、どちらの設定が有効になっているか確認しましょう。

6-2. エックスサーバーでBasic認証を設定する手順

エックスサーバーでは、サーバーパネルの「アクセス制限」からBASIC認証を設定できます。公式マニュアルでも、アクセス制限をONにし、ユーザー設定からユーザーを追加する流れが案内されています。xserver.ne.jp

基本的な流れは次のとおりです。

エックスサーバーのサーバーパネルにログインし、「ホームページ」メニューから「アクセス制限」を開きます。対象ドメインを選択し、Basic認証を設定したいフォルダのアクセス制限をONにします。

次に、ユーザー設定を開き、Basic認証用のユーザー名とパスワードを追加します。設定後、対象URLにアクセスして認証画面が表示されるか確認します。

WordPress全体にBasic認証をかけたい場合は、WordPressを設置している公開フォルダを対象にします。管理画面だけにかけたい場合は、wp-adminなど対象範囲を慎重に選びましょう。

6-3. ConoHa WINGでBasic認証を設定する手順

ConoHa WINGでは、「サイト管理」内の「サイトセキュリティ」からディレクトリアクセス制限を設定できます。公式サポートでは、コントロールパネルにログインし、「WING」→「サイト管理」→「サイトセキュリティ」→「ディレクトリアクセス制限」を開き、制限するディレクトリを追加する手順が案内されています。ConoHaサポート

基本的な流れは次のとおりです。

ConoHa WINGのコントロールパネルにログインし、上部メニューから「WING」を選択します。左メニューの「サイト管理」を開き、「サイトセキュリティ」を選びます。

「ディレクトリアクセス制限」タブを開き、「+ディレクトリ」から制限したいディレクトリを追加します。その後、ユーザー名とパスワードを設定し、対象URLにアクセスして認証画面が出るか確認します。

サイト全体にBasic認証をかけたい場合は、対象ディレクトリの指定方法を公式画面の案内に従って設定してください。

6-4. ロリポップでBasic認証を設定する手順

ロリポップでは、ユーザー専用ページの「セキュリティ」からアクセス制限を設定できます。公式ヘルプでも、Basic認証によるアクセス制限はユーザー専用ページの「セキュリティ」→「アクセス制限」から設定できると案内されています。ロリポップ!ヘルプセンター

基本的な流れは次のとおりです。

ロリポップのユーザー専用ページにログインし、「セキュリティ」メニューから「アクセス制限」を開きます。制限をかけたいディレクトリを選択し、認証フォームに表示する名前、ユーザー名、パスワードなどを設定します。

設定後、対象のWordPressサイトにアクセスし、Basic認証の入力画面が表示されるか確認します。

ロリポップでは.htaccessを使ったパスワード制のアクセス制限方法も案内されていますが、初心者は管理画面から設定する方が安全です。ロリポップ!レンタルサーバー

6-5. さくらのレンタルサーバでBasic認証を設定する手順

さくらのレンタルサーバでは、ファイルマネージャーやアクセス設定からアクセス制限を設定できる場合があります。公式ヘルプでは、ファイルマネージャーで対象フォルダを選び、アクセス設定から制限内容を設定する手順が案内されています。さくらのサポート情報

基本的な流れは次のとおりです。

さくらのレンタルサーバのコントロールパネルにログインし、ファイルマネージャーを開きます。Basic認証を設定したいフォルダを選択し、アクセス設定を開きます。

パスワード制限に関する項目を有効にし、ユーザー名とパスワードを設定します。設定後、対象URLにアクセスして認証画面が表示されるか確認します。

サーバーのプランや管理画面の仕様によって項目名が異なる場合があるため、実際の画面では「アクセス制限」「パスワード制限」「Basic認証」などの名称を確認してください。

6-6. サーバー機能と手動設定を併用するときの注意点

サーバー管理画面のBasic認証と、手動で編集した.htaccessを併用すると、設定が重複してエラーになる場合があります。

たとえば、サーバー機能で自動生成されたBasic認証の記述に加えて、自分で同じディレクトリにBasic認証コードを追記すると、認証が二重になったり、500エラーが発生したりすることがあります。

どちらか一方の方法で設定するのが基本です。すでに手動で.htaccessを編集している場合は、サーバー機能を使う前にバックアップを取り、追加される記述を確認しましょう。

7. WordPressの特定ページや特定ディレクトリにBasic認証をかける方法

WordPress全体ではなく、一部のページやディレクトリだけにBasic認証をかけたい場合もあります。ただし、WordPressのページURLは実ファイルではないことが多いため、対象によって設定方法を分けて考える必要があります。

7-1. WordPressで特定ページだけ制限したい場合の考え方

WordPressの固定ページや投稿ページは、サーバー上にpage.htmlのような実ファイルとして存在しているわけではありません。多くの場合、WordPressがURLを判定し、データベースから内容を取得して表示しています。

そのため、https://example.com/secret/という固定ページだけにBasic認証をかけたい場合、単純にsecretフォルダへ.htaccessを置く方法では対応できないことがあります。

特定ページだけを簡単に制限したい場合は、WordPress標準のパスワード保護、会員制プラグイン、アクセス制限プラグインを使う方法も検討しましょう。

7-2. 固定ページ単位でBasic認証をかける方法

Apache 2.4系で、特定のURLに対してBasic認証をかけたい場合は、.htaccessでリクエストURIを条件にする方法があります。

たとえば、/secret/だけを制限したい場合は、次のような設定を検討できます。

apache
<If "%{REQUEST_URI} =~ m#^/secret/?$#">
AuthType Basic
AuthName "Protected Page"
AuthUserFile /home/example/.htpasswd
Require valid-user
</If>

ただし、この書き方はサーバーのApacheバージョンや許可設定によって使えない場合があります。500エラーが出る場合は、サーバーが対応していない可能性があります。

初心者が固定ページ単位で制限したい場合は、WordPressのパスワード保護やプラグインを使う方が安全です。

7-3. 特定ディレクトリにBasic認証をかける方法

実在する特定ディレクトリにBasic認証をかける場合は、そのディレクトリ内に.htaccessを置きます。

たとえば、次のディレクトリを制限したいとします。

/public_html/test/

この場合、testフォルダの中に.htaccessを作成し、次のように記述します。

apache
AuthType Basic
AuthName "Test Area"
AuthUserFile /home/example/.htpasswd
Require valid-user

これで、https://example.com/test/配下にアクセスしたときだけBasic認証が表示されます。

画像やPDFなどを置いた資料配布用ディレクトリ、テスト用HTML、静的な検証ページなどを制限したい場合に向いています。

7-4. 特定URLを除外する設定方法

Basic認証をサイト全体にかけつつ、一部のURLだけ除外したい場合もあります。

代表的なのは、admin-ajax.phpや外部サービスのコールバックURLを除外したいケースです。たとえば、決済サービス、フォーム連携、API通知などで、外部サービスからWordPressへアクセスが必要な場合、Basic認証が原因で連携に失敗することがあります。

Nginx環境では、次のように特定のlocationだけauth_basic off;を指定する考え方があります。

Nginx
location / {
auth_basic "Restricted Area";
auth_basic_user_file /etc/nginx/.htpasswd;
}

location = /wp-admin/admin-ajax.php {
auth_basic off;
}

Nginxではauth_basicauth_basic_user_fileを使ってアクセス制限を設定します。公式ドキュメントでも、これらのディレクティブがBasic認証の設定に使われることが案内されています。Nginx

Apacheの場合はサーバー環境によって除外設定の書き方が異なるため、レンタルサーバーではサポート窓口や公式マニュアルを確認するのが安全です。

7-5. ページ単位ならパスワード保護も検討する

WordPressの固定ページや投稿ページを1ページだけ制限したい場合は、Basic認証よりもWordPress標準のパスワード保護が簡単です。

投稿編集画面または固定ページ編集画面で、公開状態を「パスワード保護」に変更し、任意のパスワードを設定します。これにより、そのページを閲覧する際にパスワード入力が求められます。

Basic認証はサーバー側の制限、パスワード保護はWordPress側のページ単位の制限です。目的が「特定ページだけ見せたい」ならパスワード保護、「サイト全体や管理画面を見せたくない」ならBasic認証、というように使い分けましょう。

8. Basic認証を解除する方法

Basic認証は、公開前サイトやテスト環境では便利ですが、本番公開時には解除が必要な場合があります。解除し忘れると、ユーザーや検索エンジンがサイトを閲覧できません。

8-1. .htaccessのBasic認証コードを削除する

手動で.htaccessにBasic認証を設定した場合は、追加したコードを削除します。

削除するのは、次のようなBasic認証の記述です。

apache
AuthType Basic
AuthName "Restricted Area"
AuthUserFile /home/example/.htpasswd
Require valid-user

wp-login.phpだけに設定している場合は、次のような<Files>のブロックごと削除します。

apache
<Files "wp-login.php">
AuthType Basic
AuthName "Login Area"
AuthUserFile /home/example/.htpasswd
Require valid-user
</Files>

WordPressのパーマリンク用コードは削除しないように注意してください。

8-2. .htpasswdを削除または無効化する

Basic認証を完全に使わない場合は、.htpasswdを削除しても構いません。

ただし、複数のディレクトリや別サイトで同じ.htpasswdを使っている場合、削除すると他のBasic認証にも影響します。削除する前に、どの設定から参照されているか確認しましょう。

一時的に無効化したいだけなら、.htpasswdを削除するよりも、.htaccess側のBasic認証コードを削除する方が安全です。

8-3. プラグインで設定したBasic認証を解除する

プラグインで設定した場合は、プラグインの設定画面からBasic認証をOFFにします。

OFFにしたあと、ログアウト状態またはシークレットウィンドウでサイトにアクセスし、認証画面が表示されないことを確認します。

不要になったプラグインは無効化し、問題がなければ削除します。ただし、他のアクセス制限機能も同じプラグインで使っている場合は、削除前に影響範囲を確認してください。

8-4. サーバー管理画面でBasic認証を解除する

レンタルサーバーの管理画面で設定したBasic認証は、同じ管理画面から解除します。

エックスサーバーなら「アクセス制限」をOFFにする、ConoHa WINGなら「ディレクトリアクセス制限」から対象設定を削除またはOFFにする、ロリポップなら「アクセス制限」設定を解除する、という流れになります。

管理画面で解除したあと、対象URLにアクセスして認証画面が表示されないことを確認します。

8-5. 解除後にキャッシュを削除して確認する

Basic認証を解除したのに認証画面が出る場合は、ブラウザが認証情報を保持している可能性があります。

確認するときは、シークレットウィンドウ、別ブラウザ、スマートフォン、ブラウザキャッシュ削除などを試してください。

また、キャッシュプラグイン、CDN、サーバーキャッシュを利用している場合は、それらのキャッシュも削除します。特に公開直前の確認では、自分のブラウザだけでなく、第三者の環境でも表示確認を行うと安心です。

9. WordPressのBasic認証でよくあるエラーと対処法

Basic認証の設定では、認証画面が出ない、パスワードが通らない、500エラーが出る、管理画面に入れないなどのトラブルが起こることがあります。原因を切り分けながら対処しましょう。

9-1. 認証画面が表示されない

認証画面が表示されない場合は、まず.htaccessの設置場所を確認します。

WordPress全体にBasic認証をかけたい場合、.htaccessはWordPressのインストール先、つまりwp-config.phpwp-contentがある階層に置くことが一般的です。

次に、サーバーが.htaccessに対応しているか確認します。Nginx環境では通常.htaccessが使えないため、Nginxの設定ファイルやサーバー管理画面でBasic認証を設定する必要があります。

また、ブラウザに認証済み情報が残っていて、認証画面が再表示されないこともあります。シークレットウィンドウや別ブラウザで確認してください。

9-2. ID・パスワードを入力しても通らない

IDとパスワードを入力しても認証が通らない場合は、.htpasswdの記述形式を確認します。

.htpasswdは次のような形式である必要があります。

user01:暗号化されたパスワード

ユーザー名の前後に余計なスペースが入っている、全角文字が混ざっている、パスワードが正しく暗号化されていない、といった場合は認証に失敗します。

また、AuthUserFileに指定したパスが間違っている可能性もあります。URLではなくサーバー内のフルパスを指定しているか確認しましょう。

9-3. 500 Internal Server Errorが出る

500 Internal Server Errorが出る場合は、.htaccessの記述ミスが原因であることが多いです。

まず、追加したBasic認証のコードを一時的に削除し、サイトが表示されるか確認します。表示される場合は、追加したコードのどこかに問題があります。

よくある原因は、AuthUserFileのパス間違い、使えないディレクティブの記述、全角スペースの混入、サーバーのApacheバージョンに合わない書き方、<Files><If>の閉じ忘れなどです。

復旧を急ぐ場合は、バックアップしておいた.htaccessに戻してください。

9-4. 404エラーやリダイレクトループが起きる

Basic認証を設定したあとに404エラーが増えた場合は、WordPressのパーマリンク設定や.htaccessのWordPress用コードが壊れている可能性があります。

WordPress管理画面に入れる場合は、「設定」→「パーマリンク」を開き、何も変更せずに「変更を保存」をクリックします。これにより、WordPressのリライトルールが再生成されることがあります。

リダイレクトループが起きる場合は、SSL設定、リダイレクトプラグイン、サーバー側の転送設定、Basic認証設定が干渉している可能性があります。まずはBasic認証を一時的に外し、原因を切り分けましょう。

9-5. WordPress管理画面にログインできない

管理画面にログインできない場合は、Basic認証とWordPressログインのどちらで止まっているかを確認します。

ブラウザの小さな認証ダイアログで止まっているならBasic認証の問題です。WordPressのログインフォームで止まっているなら、WordPressアカウントやプラグイン側の問題です。

Basic認証が原因の場合は、FTPやファイルマネージャーでwp-admin/.htaccessまたはWordPress直下の.htaccessを開き、Basic認証の記述を一時的に削除します。

それでもログインできない場合は、セキュリティプラグイン、ログインURL変更プラグイン、Cookie、キャッシュなども確認しましょう。

9-6. 画像・CSS・JavaScriptが読み込まれない

Basic認証の設定後に画像、CSS、JavaScriptが読み込まれない場合は、静的ファイルのURLがBasic認証でブロックされている可能性があります。

特に、別ドメインやサブディレクトリにあるファイル、CDN配信しているファイル、外部サービスから読み込まれるファイルに注意が必要です。

ブラウザの開発者ツールを開き、Networkタブで401エラーや403エラーが出ていないか確認します。admin-ajax.phpが401になっている場合は、除外設定が必要になることがあります。

9-7. スマホや別ブラウザで認証が外れない

Basic認証はブラウザ側に認証情報が保持されることがあります。そのため、解除したつもりでも同じブラウザでは以前の状態が残って見える場合があります。

確認時は、ブラウザのキャッシュ削除、シークレットウィンドウ、別ブラウザ、別端末での確認を行います。

また、サーバーキャッシュやCDNを使っている場合は、管理画面からキャッシュを削除してください。公開前後の確認では、必ずログインしていない状態で表示チェックを行いましょう。

10. Basic認証を設定するときの注意点

Basic認証は手軽に使える反面、使い方を誤るとセキュリティやSEO、運用に影響します。設定前に注意点を確認しておきましょう。

10-1. IDとパスワードを使い回さない

Basic認証のIDとパスワードは、WordPress管理者アカウントやFTP、サーバーパネル、メールアカウントと同じものを使い回さないようにしましょう。

万が一Basic認証の情報が第三者に知られた場合、他の重要なアカウントまで不正アクセスされるリスクがあります。

ユーザー名は推測されにくいものにし、パスワードは長く複雑なものを設定します。共有が必要な場合も、チャットに平文で残すのではなく、パスワード管理ツールなどを使うと安全です。

10-2. Basic認証だけでWordPressのセキュリティ対策を完結させない

Basic認証は便利ですが、WordPressのセキュリティ対策をすべて代替するものではありません。

WordPress本体、テーマ、プラグインの更新、不要なプラグインの削除、管理者パスワードの強化、二段階認証、ログイン試行制限、バックアップ、WAFなどもあわせて行いましょう。

Basic認証は「入口を一段階増やす」対策であり、WordPress内部の脆弱性対策やアカウント管理とは別物です。

10-3. SSL化されていないサイトでは使わない

Basic認証を使うサイトは、必ずSSL化してHTTPSでアクセスできるようにしましょう。

Basic認証はユーザー名とパスワードをBase64で送信する方式です。Base64は暗号化ではないため、HTTP通信のまま使うと認証情報を盗み見られるリスクがあります。MDNでもBasic認証は認証情報をBase64で送信する方式として説明されています。MDN Web Docs

Basic認証を設定する前に、サイトURLがhttps://で表示され、ブラウザで鍵マークが出ていることを確認してください。

10-4. 検索エンジンにインデックスさせたいページには設定しない

Basic認証を設定したページは、検索エンジンのクローラーも内容を閲覧できません。

公開前サイトを検索結果に出したくない場合には有効ですが、本番公開後にBasic認証を残したままにすると、Googleなどの検索エンジンがページを取得できず、SEOに悪影響が出る可能性があります。

検索エンジンにインデックスさせたいページにはBasic認証を設定しないか、公開時に必ず解除しましょう。

10-5. 本番公開前に必ず解除・確認する

公開前サイトにBasic認証をかけた場合、本番公開時の解除忘れに注意してください。

公開作業のチェックリストに、Basic認証の解除、noindex設定の解除、検索エンジンでの表示許可、サイトマップ送信、キャッシュ削除、スマートフォン表示確認などを入れておくと安心です。

Basic認証を解除したあとは、ログインしていない状態、別ブラウザ、スマートフォン、外部ネットワークなどで表示確認を行いましょう。

10-6. 複数人で共有するときは認証情報の管理に注意する

制作会社、クライアント、社内メンバーなど複数人でBasic認証を共有する場合は、認証情報の管理に注意が必要です。

全員で同じIDとパスワードを使うと、誰がアクセスできる状態なのか管理しにくくなります。可能であれば、ユーザーごとにIDを分けると安全です。

プロジェクト終了後や担当者の変更後は、パスワードを変更するか、不要なユーザーを削除しましょう。

11. WordPressのBasic認証に関するよくある質問

ここでは、WordPressのBasic認証についてよくある質問に回答します。

11-1. Basic認証を設定するとSEOに影響する?

検索エンジンにインデックスさせたいページにBasic認証を設定すると、SEOに影響する可能性があります。

Basic認証がかかっているページは、検索エンジンのクローラーが内容を取得できません。そのため、公開中のサイト全体にBasic認証をかけたままにすると、ページが正しく評価されなかったり、検索結果に表示されにくくなったりする可能性があります。

公開前サイトやテスト環境にはBasic認証を使い、本番公開時には解除するのが基本です。

11-2. Basic認証のIDやパスワードはどこで変更できる?

手動設定の場合は、.htpasswdを編集することでIDやパスワードを変更できます。

SSHが使える場合は、htpasswdコマンドで対象ユーザーのパスワードを再設定できます。

Bash
htpasswd /home/example/.htpasswd user01

サーバー管理画面で設定した場合は、アクセス制限やディレクトリアクセス制限の画面からユーザー情報を変更します。

プラグインで設定した場合は、プラグインの設定画面からIDとパスワードを変更します。

11-3. Basic認証とWordPressログインの違いは?

Basic認証は、Webサーバー側で行う認証です。WordPressが表示される前に、ブラウザの認証画面でユーザー名とパスワードを求めます。

WordPressログインは、WordPress本体のユーザー認証です。管理画面に入るためのユーザー名またはメールアドレス、パスワードを入力します。

つまり、Basic認証はサイトやログイン画面の前に設置するロック、WordPressログインはWordPress内部に入るためのロックです。両方を設定すると、Basic認証を通過したあとにWordPressログインを行う形になります。

11-4. スマホでもBasic認証は表示される?

スマートフォンでもBasic認証は表示されます。

iPhoneのSafari、AndroidのChromeなどで対象URLにアクセスすると、ユーザー名とパスワードを入力する認証画面が表示されます。

ただし、ブラウザやアプリ内ブラウザによって表示形式が異なる場合があります。公開前確認を行う場合は、PCだけでなくスマートフォンでも認証画面とサイト表示を確認しましょう。

11-5. Basic認証を設定したまま公開しても問題ない?

一般公開したいサイトでは、Basic認証を設定したまま公開するのはおすすめできません。

Basic認証があると、訪問者はIDとパスワードを知らなければサイトを見られません。検索エンジンもページ内容を取得できないため、SEOにも悪影響が出る可能性があります。

ただし、会員限定サイト、社内向けサイト、クライアント確認用サイトなど、限られた人だけが閲覧する目的であれば、Basic認証を設定したまま運用するケースもあります。その場合も、SSL化、強力なパスワード、定期的な変更を行いましょう。

11-6. Nginx環境でもBasic認証は設定できる?

Nginx環境でもBasic認証は設定できます。

ただし、Apacheのように.htaccessを置いて設定するのではなく、Nginxの設定ファイルにauth_basicauth_basic_user_fileを記述します。Nginx公式ドキュメントでも、Basic認証にはauth_basicauth_basic_user_fileディレクティブが使われると説明されています。Nginx

設定例は次のとおりです。

Nginx
location / {
auth_basic "Restricted Area";
auth_basic_user_file /etc/nginx/.htpasswd;
}

Nginxの設定変更にはサーバー管理権限が必要です。共用レンタルサーバーでは直接編集できない場合があるため、サーバー管理画面のアクセス制限機能やサポート情報を確認してください。

まとめ

WordPressにBasic認証を設定すると、サイト全体、管理画面、ログイン画面、特定ディレクトリなどにユーザー名とパスワードによるアクセス制限をかけられます。

公開前サイトやテスト環境を第三者に見せたくない場合は、WordPress全体にBasic認証を設定する方法が便利です。公開中のサイトで管理画面を保護したい場合は、wp-login.phpwp-adminにBasic認証を設定する方法が向いています。

Apache環境では、主に.htaccess.htpasswdを使います。.htaccessにはBasic認証の設定を記述し、.htpasswdにはユーザー名と暗号化されたパスワードを保存します。Nginx環境では.htaccessではなく、auth_basicauth_basic_user_fileを使って設定します。

初心者の場合は、レンタルサーバーのアクセス制限機能を使うと安全です。エックスサーバー、ConoHa WING、ロリポップ、さくらのレンタルサーバなど、多くのサーバーで管理画面からBasic認証を設定できます。

一方で、Basic認証は万能なセキュリティ対策ではありません。SSL化されていないサイトでは使わない、WordPressのログイン対策や更新管理と併用する、公開時に解除し忘れない、IDとパスワードを使い回さないといった点に注意しましょう。

Basic認証を正しく使えば、WordPressの公開前確認や管理画面保護を手軽に強化できます。作業前にバックアップを取り、設定後はシークレットウィンドウやスマートフォンで認証画面とサイト表示を必ず確認してください。