Amazonで商品を見る セール会場へ

WordPress 403 Forbiddenの原因と直し方|出た場所で切り分け

WordPressの「403 Forbidden」は、出た場所を見れば原因の見当がつきます。

403は「このURLを見る許可が無い」ことを表す状態コードで、出た場所によって断っている仕組みが違います。

403が出た場所考えられる原因最初に見るところ
サイト全体IP制限、.htaccessの記述、サーバーの契約.htaccessとサーバーのアクセス制限
特定のフォルダー中にindex.phpなどが無い(一覧表示の禁止)そのフォルダーを開く必要があるか
特定のファイルパーミッション(権限)の誤りファイルの権限が644になっているか
管理画面・ログイン画面だけ国外アクセス制限、IP制限、セキュリティプラグインサーバーのWordPress向けセキュリティ設定
記事の保存・更新のときだけWAF(攻撃を防ぐ仕組み)の検知サーバーのWAF設定
上の3行は当方の検証用WordPressで再現。下の2行は未検証で、サーバー会社の公式マニュアルにもとづく

当方の検証用WordPress(WordPress 7.1.4、PHP 8.3、2026年10月30日)で、上の3つは実際に403を出して確かめました。

注意したいのは、index.phpなどPHPファイルの権限を誤ると、403ではなく真っ白の500になったことです。

403が出ないからといって、権限が正しいとは限りません。

この記事では、切り分け、直し方、直したあとの確認の順に説明します。

目次

著者

WEB制作をしているデジタルノマド
WordPressのカスタマイズが好きで、色々と自作しています。

WordPressのカスタマイズに困ったらご相談ください!

WordPressの403 Forbiddenはサーバーが出している

検証で出た403は、どれもWordPressではなくサーバーが返した画面でした。

当方で出た403の画面

フォルダーを開いたとき、権限のないファイルを開いたとき、IP制限で断られたときの3つとも、同じ青いページでした。

サーバー会社が返す403 Forbiddenの青いページ
エックスサーバー社の共用サーバーが返した403 Forbiddenのページ(2026年10月30日の表示)

画面には原因の候補として、「パーミッション等によって禁止されている」ことと、「デフォルトドキュメント(index.html など)が存在しない」ことが書かれています。

この画面が出ているなら、断っているのはWordPressの手前にあるサーバーです。

セキュリティプラグインが断る場合は、プラグイン独自の画面や文言になることもあります。

403が出ても正常な場所がある

次のURLは、検証用のWordPressで開くと403になりましたが、壊れているわけではありません。

  • 画像の保存フォルダー(/wp-content/uploads/2026/10/ など)
  • WordPress本体のフォルダー(/wp-includes/)
  • サーバーの設定ファイル(/.htaccess)

どれも、フォルダーの中身の一覧や設定ファイルを、外から見せないための403です。

記事の中で画像が表示されていれば、フォルダーを開けるように直す必要はありません。

スポンサーリンク

403が出た場所で原因を切り分ける

冒頭の表のとおり、出た場所ごとに確かめる順番が変わります。

サイト全体が403になる

トップページも記事も管理画面も403なら、サイトの入り口で止められています。

検証用のWordPressは.htaccessで自分のIPアドレスだけを許可していて、許可していない側も同じ青い403ページになりました。

エックスサーバーの公式マニュアルは、403の原因として次のものを挙げています。

  • サーバーの契約が有効でない(凍結)
  • public_htmlにデフォルトドキュメント(index.htmlなど)が無い
  • public_html(または上のフォルダー)が削除されている
  • 特定のIPアドレスからのアクセスを拒否している
  • パーミッションの誤り
  • .htaccessの記述の誤り

出典:各種エラーメッセージ(エックスサーバー マニュアル、2026年10月30日確認)

直前に.htaccessやサーバーのアクセス拒否設定を変えていないかを、最初に確かめます。

特定のフォルダー・ファイルだけ403になる

フォルダーを開いて403なら、中にindex.phpやindex.htmlが無く、一覧の表示が禁止されている状態です。

ファイルを開いて403なら、そのファイルのパーミッションを疑います。

検証で、readme.html(WordPressに付属するファイル)のパーミッションを000にすると403になりました。

管理画面・ログイン画面だけ403になる

表側は見えるのに、/wp-admin/やログイン画面だけ403になる場合は、WordPressを守る設定が働いている可能性があります。

エックスサーバーの「WordPressセキュリティ設定」は、ダッシュボードやREST APIへの国外からの接続を制限できる機能です。

公式マニュアルでは、国外からWordPressを使う場合は、ダッシュボードとREST APIの制限をOFFにするよう案内しています。

同じ画面のIPアドレス制限をONにすると、ホワイトリストに入れたIPアドレス以外は、国内外を問わず入れなくなります。

出典:WordPressセキュリティ設定(エックスサーバー マニュアル、2026年10月30日確認)

この機能による403は、当方では実測していません。

ログインまわりの切り分けは、WordPressにログインできないときの対処法も参考にしてください。

記事の保存・更新のときだけ403になる

記事を保存したときだけ失敗する場合は、サーバーのWAF(不正な文字列を見つけて止める仕組み)を疑います。

エックスサーバーの公式マニュアルでは、WAFはスクリプトの埋め込みやSQLの文字列などを検知し、検知するとアクセスを拒否してエラーページを出すと説明しています。

設定を変えてから反映されるまで、時間がかかる場合があるという注意書きもありました。

出典:WAF設定(エックスサーバー マニュアル、2026年10月30日確認)

一般に、記事にコードの見本を書くと、攻撃と似た文字列として検知されることがあります。

当方の検証用WordPressでは、攻撃に似た文字列をURLに付けて開いても、403にはなりませんでした。

WAFが無効だったか、この開き方では反応しなかったためで、WAFによる403は確かめられていません。

パーミッション(権限)を確かめて直す

ファイルやフォルダーの権限は、数字3けたで表します。

推奨されている値

対象エックスサーバーの推奨WordPress公式の目安
フォルダー755か705755か750
.phpなどのファイル644644か640
.htaccess644644か640(ファイル全般の値)
wp-config.php644(ファイル全般の値)440か400
WordPress公式の値は、suEXECを使う共用サーバーの場合の目安

出典:パーミッション(エックスサーバー マニュアル、2026年10月30日確認)/Changing File Permissions(WordPress Developer Resources、2026年10月30日確認)

WordPressの公式ドキュメントは、アップロード用も含めて、フォルダーを777にしないよう注意しています。

当方の再現:PHPファイルは403にならなかった

検証で、readme.htmlのパーミッションを000にすると、青い403ページになりました。

同じことをindex.phpにすると、403ではなく、真っ白な画面と状態コード500が返りました。

index.phpのパーミッションを000にしたときの真っ白な画面
index.phpのパーミッションを000にしたときの画面。真っ白で、状態コードは500(2026年10月30日の表示)

つまり、PHPファイルの権限の誤りは、403ではなく500として現れることがあるということです。

権限を調べるときは、403が出たファイルだけでなく、真っ白になったPHPファイルも対象にします。

500が出た場合の切り分けは、WordPressの500エラーの直し方をご覧ください。

権限の確かめ方と直し方

SSHが使えるなら、ls -lで今の権限を確かめてから、chmodで直します。

# 今の権限を見る(-rw-r--r-- なら644)
ls -l readme.html index.php

# ファイルを644、フォルダーを755に戻す
chmod 644 readme.html
chmod 755 wp-content/uploads

FTPソフトやサーバーのファイルマネージャーにも、権限を数字で変える画面があります。

変える前に今の値を控えておけば、元に戻すのは難しくありません。

サイト全体の権限をまとめて変えるのは避け、403が出た場所から1つずつ直します。

.htaccessのアクセス制限を確かめる

サイト全体やフォルダー単位の403なら、次に見るのは.htaccessの行です。

IP制限の行を探す

.htaccessに次のような行があると、許可したIPアドレス以外は403になります。

<RequireAll>
Require ip 203.0.113.10
</RequireAll>

検証用のWordPressはこの形で自分のIPアドレスだけを許可していて、ほかからのアクセスは403でした。

回線を変えた、テザリングに切り替えたなど、IPアドレスが変わったあとに403が出始めたら、この行を疑います。

古い書き方の「Deny from」「Order deny,allow」も、同じくアクセスを断る行です。

自分のIPアドレスは、自分のIPアドレスを確認する方法で確かめることができます。

ベーシック認証でパスワードを誤ったときは403ではなく401になる、というのがエックスサーバーのマニュアルの説明です。

書き換える前に複製を取る

.htaccessは、1行の誤りでサイト全体が止まります。

検証では、存在しない命令を1行書いただけで、サイト全体が500になりました。

サーバー会社が返す500 Internal Server Errorの青いページ
.htaccessに存在しない命令を1行書いたときの画面。403と同じ青いページで、番号だけが違う(2026年10月30日の表示)
# 書き換える前に複製しておく
cp .htaccess .htaccess.bak-20261030

# 戻すときは、複製を元の名前で上書きする
cp .htaccess.bak-20261030 .htaccess

直して表示が戻らなければ、複製を元の名前に戻します。

.htaccessの書き方は、.htaccessを使ったリダイレクト方法もあわせてご覧ください。

直したあとに確かめること

403が消えたら、次の3つを確かめます。

  • ログアウトした状態や別のブラウザーでも開けるか
  • トップページ以外の記事や画像も開けるか
  • 一時的に外したアクセス制限を、必要な範囲で戻したか

別の不具合の検証では、トップページだけサーバーのキャッシュで普段どおりに見え、記事のURLはエラーのままという状態がありました。

1つのURLだけで、直ったと判断しないでください。

原因がわからない場合は、403が出たURL、日時、直前に変えたことをそろえて、サーバー会社に問い合わせるのが近道です。

自分で直すのが難しいときの相談先として、MOTOKIのサービスもご利用ください。

スポンサーリンク

まとめ

WordPressの403 Forbiddenは、出た場所で原因を切り分けることができます。

  • サイト全体なら、IP制限・.htaccess・サーバーの契約
  • フォルダーやファイルだけなら、一覧表示の禁止かパーミッション
  • 管理画面だけなら、サーバーのセキュリティ設定
  • 保存のときだけなら、WAF

PHPファイルの権限の誤りは、403ではなく真っ白の500になることがあります。

真っ白になった場合は、WordPressが表示されない・真っ白になるときの直し方で調べ方を説明しています。

  • URLをコピーしました!

自力で解決できないときは

WordPressのエラー・不具合対応

原因の切り分けから復旧、再発防止の設定まで承ります。1時間 ¥5,000〜(税込)。管理画面に入れない、表示が崩れるといった急ぎのご相談にも対応します。

WAZAの有料記事のサブスクリプションも開始しました。

サービス

Service

WordPressのエラー・不具合対応のサービスに関心がありましたら、ぜひ詳細をご覧ください。

目次