WordPress の「申し訳ありませんが、このページへのアクセスは許可されていません」エラーは、ページや管理画面を表示・管理しようとするリクエストをブロックします。原因はほぼ必ず次の 3 つのいずれかです。誤ったユーザー権限、破損した .htaccess ファイル、または不適切なファイルパーミッション。この記事では、確認済みの 9 つの解決策を、最も速いものから最も徹底的なものへと順に紹介します。
クイック診断 — まず最も可能性の高い原因を確認しましょう。
- 誤ったユーザー権限 — あなたの WordPress アカウントが管理者アクセスを失っています。Fix 3 を参照。
- 破損した
.htaccess— プラグインの更新やサーバー移行で発生することがよくあります。Fix 5 を参照。- 不適切なファイルパーミッション — Web サーバーが WordPress のファイルを読み取れません。Fix 6 を参照。
どれに当てはまるか分からない場合は、下の判断フローチャートに従ってください。
トラブルシューティングの判断フローチャート
個々の解決策に入る前に、この表を使って最も可能性の高い根本原因を特定しましょう。
| 質問 | はい | いいえ |
|---|---|---|
| プラグインの更新やインストールの直後にエラーが現れましたか? | → Fix 4:すべてのプラグインを停止する | 続行 ↓ |
/wp-login.php でも、wp-admin から完全に締め出されていますか? |
→ Fix 3:ユーザー権限を確認する | 続行 ↓ |
| エラーは特定の URL でのみ現れますか? | → Fix 1:URL を再確認する | 続行 ↓ |
| サーバー移行やホスティング変更の後にエラーが現れましたか? | → Fix 5:.htaccess をリセット、または Fix 6:ファイルパーミッション | 続行 ↓ |
| WordPress のインストールは新しい、または最近バックアップから復元したものですか? | → Fix 9:コアファイルを再インストール | → Fix 2:まずブラウザーのキャッシュを消去 |
Fix 1:URL を再確認する
最も速い確認であり、最初に除外すべきものです。URL のたった 1 つの入力ミスがこのエラーを引き起こすことがあります。WordPress が要求されたページを見つけられず、アクセス拒否にフォールバックするためです。スペルとパス構造を確認し、ページや投稿が移動・削除されていないか、スラッグが変更されていないかを確かめてください。
Fix 2:ブラウザーのキャッシュを消去する
ブラウザーが、アカウントではもうアクセスできないページのキャッシュ版や、現在のログイン状態と一致しない古いセッション Cookie を配信している可能性があります。
- Web ブラウザーを開き、設定メニューにアクセスします。
- 閲覧履歴またはプライバシー設定のオプションに移動します。
- 閲覧データを消去するオプションを探してクリックします。
- キャッシュを消去する期間を選択します。
- Cookie や閲覧履歴など、消去するキャッシュの種類を選びます。
- 「データを消去」または「キャッシュを削除」ボタンをクリックして、選択したデータを削除します。
キャッシュと Cookie を消去したら、ページを再読み込みして、もう一度ログインしてみてください。エラーが続く場合は、次の解決策に進みます。
Fix 3:WordPress のユーザー権限を確認する
アカウントの権限グループが変更された場合、またはサイトのユーザー権限のデータベーステーブルが破損した場合、WordPress は正しいパスワードでも管理ページへのアクセスを拒否します。
- WordPress のダッシュボードにログインします。
- WordPress ダッシュボードの管理メニューで「ユーザー」を見つけてクリックします。
- 一覧から自分のアカウントを見つけ、「権限グループ」列の値を確認します。
「権限グループ」列に 管理者 以外が表示されている場合、あなたのアカウントは降格されています。アクセス権を持つ管理者が、あなたのユーザープロフィールを編集して修正できます。ユーザー画面にまったくたどり着けない場合 — つまりアカウントに管理者アクセスがない場合 — は、下の Fix 7 を参照してください。データベース上で直接ユーザー権限をリセットします。
Fix 4:すべてのプラグインを停止する(セーフモードテスト)
プラグインの競合は、このエラーの主な原因の 1 つです。WP STAGING のサポート事例の経験では、WordPress の権限チェックにフックする不具合のあるプラグインが、インストールや更新の直後にすべてのユーザーのアクセスを奪うことがあります。すべてのプラグインを停止するのは、プラグインが原因かどうかを確認する最も速い方法です。
まだ WordPress の管理画面にアクセスできる場合:
- 「プラグイン → インストール済みプラグイン」に移動します。
- リスト上部のチェックボックスですべてのプラグインを選択します。
- 「一括操作」ドロップダウンを開いて「停止」を選び、「適用」をクリックします。
- エラーを返していたページにアクセスしてみます。
- SFTP でサイトに接続するか、cPanel のファイルマネージャーを使います。
wp-content/plugins/に移動します。pluginsフォルダーの名前をplugins-disabledに変更します。- WordPress は次のリクエストで自動的にすべてのプラグインを停止します。
- ログインします。アクセスが回復したら、フォルダー名を
pluginsに戻し、競合を特定するためにプラグインを 1 つずつ再有効化します。
問題のプラグインを特定したら、再有効化する前に、そのプラグインのサポートフォーラムや変更履歴で既知の競合を確認してください。
Fix 5:破損した .htaccess ファイルをリセットする
破損した .htaccess ファイルは、WordPress の管理エリア全体へのアクセスをブロックすることがあります。これは私たちがよく目にする原因の 1 つで、プラグインが .htaccess を変更して不正なリライトルールを書き込んだときによく起こります。
- 認証情報でログインして、ホスティングのコントロールパネル(cPanel)にアクセスします。
- cPanel 内の「ファイルマネージャー」または類似のファイル管理ツールに移動します。
- サイトのルートディレクトリを見つけて選択します。
- サイトのルートにある
.htaccessファイルを見つけます。削除せずに無効化するため、名前を.htaccess.oldに変更します。
WordPress サイトにログインしてみてください。エラーが解消されたら、.htaccess ファイルが破損していたということです。クリーンな新しいものを生成します。
- WordPress の管理エリアで「設定 → パーマリンク」に移動します。
- 「変更を保存」をクリックします — WordPress が自動的に新しい有効な
.htaccessファイルを書き込みます。
.htaccess の名前を変更してもエラーが続く場合、原因は別のところにあります — Fix 6 に進んでください。
Fix 6:不適切なファイルパーミッションを修正する
WordPress は、ファイルを読み取り・実行するために特定のファイルパーミッションを必要とします。ファイルは 644、ディレクトリは 755 に設定すべきです。より厳しいパーミッションは Web サーバーが WordPress のファイルを読み取るのを妨げ、アクセスエラーを引き起こします。cPanel でパーミッションを修正する方法は次のとおりです。
- cPanel アカウントにログインします。
- cPanel ダッシュボードで「ファイルマネージャー」オプションを見つけてクリックします。
- サイトのファイルが保存されているディレクトリ — 通常は
public_htmlまたはwwwフォルダー — に移動します。
- ファイルまたはディレクトリを右クリックし、「パーミッションの変更」または「パーミッション」を選びます。
- ファイルを
644、ディレクトリを755に設定し、「パーミッションの変更」または「保存」をクリックして適用します。
SSH アクセスがあるサーバーでは、2 つのコマンドで正しいパーミッションを再帰的に適用できます。
/path/to/wordpress をサイトの実際のルートパスに置き換えてください。WordPress が推奨するパーミッションの完全なリファレンスは、WordPress.org の Hardening WordPress ガイドを参照してください。
Fix 7:WordPress のユーザー権限を初期設定にリセットする
WordPress データベースの wp_user_roles オプションが破損または削除されると、WordPress は管理者を含むどのユーザーの権限も認識できなくなります。これはサイト全体で「許可されていません」エラーを発生させ、単一のアカウントが権限を失う場合(Fix 3)とは異なります。
WP-CLI 経由(最速、SSH アクセスが必要):
populate_roles() は、初期設定のユーザー権限を再作成するための WordPress の正規の関数です。wp-admin/includes/schema.php にあり、自動読み込みされないため require_once が必要です。
phpMyAdmin 経由:
- phpMyAdmin を開き、WordPress のデータベースを選択します。
wp_optionsテーブルを開きます(テーブルの接頭辞はwp_と異なる場合があります)。option_name = 'wp_user_roles'の行を検索します。- その行が見つからない、または
option_valueにa:0:{}が含まれている場合、権限テーブルは破損しています。 - その行を削除します。WordPress は次のページ読み込み時に初期設定の権限を再生成します。
WordPress の権限グループとその権限の正規の一覧は、WordPress.org の Roles and Capabilities リファレンスを参照してください。
Fix 8:デフォルトテーマに切り替える
テーマの functions.php ファイルが、意図せずユーザー権限から権限を削除することがあります。これは、カスタムテーマが論理エラーのある remove_role() や remove_cap() を使っている場合や、テーマの更新が WordPress の権限システムと競合を起こす場合に見られます。
WordPress の管理画面にアクセスできる場合:
- 「外観 → テーマ」に移動します。
- Twenty Twenty-Five などの WordPress のデフォルトテーマを有効化します。
- エラーを返していたページを再読み込みします。
締め出されている場合:
- SFTP または cPanel のファイルマネージャーで接続します。
wp-content/themes/に移動します。- アクティブなテーマのフォルダー名を変更します — 例:
mytheme→mytheme-disabled。 - WordPress は次のリクエストで、最後にインストールされたデフォルトテーマにフォールバックします。
テーマを切り替えてエラーが消えたら、問題はテーマの functions.php にあります。テーマを再有効化する前に、そのファイルへの最近のコミットや更新を確認してください。
Fix 9:WordPress のコアファイルを再インストールする
上記のどの解決策も効かず、明確なきっかけなくエラーが現れた場合、破損した WordPress のコアファイルが認証チェックをブロックしている可能性があります。コアファイルの再インストールは、テーマ・プラグイン・アップロード済みメディアに触れずに、すべての WordPress の PHP ファイルを置き換えます。
- 最新の WordPress パッケージを wordpress.org/download からダウンロードします。
- アーカイブをローカルマシンで展開します。
- 展開したパッケージから
wp-contentフォルダーを削除します — このフォルダーはアップロードしないでください。 - パッケージの残りのファイルをすべてサーバーのルートにアップロードし、既存の WordPress ファイルを上書きします。
wp-config.php はコアパッケージに含まれておらず、手動で置き換えない限り上書きされません。データベース、メディアライブラリ、テーマ、プラグインはそのまま残ります。
WP STAGING で安全に解決策をテストする
これらの変更を本番サイトで行う前に — 特に .htaccess の名前変更、ファイルパーミッションのリセット、データベース上でのユーザー権限の変更 — まずステージングのコピーでエラーを再現するほうが安全です。解決策が意図しない副作用を引き起こしても、本番サイトには影響しません。
WP STAGING を使えば、本番の WordPress インストールから数クリックでステージングサイトを作成できます。本番環境を複製し、ステージングでアクセスエラーを再現し、解決策を適用して、本番に触れる前に動作を確認しましょう。これは、本番サイトでの誤操作がすべてのユーザーを同時に締め出しかねない Fix 7 のデータベースレベルの解決策で特に役立ちます。
まとめ
「申し訳ありませんが、このページへのアクセスは許可されていません」エラーの根本原因は短いリストに収まります。誤ったユーザー権限、破損した .htaccess ファイル、不適切なファイルパーミッション、プラグインの競合、またはテーマの競合です。自分の状況に合うセクションから始めて、上記の解決策を順に試してください。Fix 4(プラグイン)または Fix 8(テーマ)の後にアクセスが回復した場合は、本番で再有効化する前に、原因となった特定のプラグインやテーマの変更を特定してください。