BLOG
ブログ
WordPress 403(Forbidden)って何?対処方法は?

目次
403(Forbidden)とは?
Webサイトを運営していると様々なエラーに出会います。
サイトが見つからない為に発生するエラーや、サーバー側の処理がおかしい為に発生するエラーなど、様々です。

そして、今回出ている「403エラー」はウィキペディアで次の様な意味に説明されています。↓
“HTTP 403、またはエラーメッセージ Forbidden(「閲覧禁止」「禁止されています」の意)は、HTTPステータスコードの一つ。ページが存在するものの、特定のアクセス者にページを表示する権限が付与されず、アクセスが拒否されたことを示すもの。また、サイトの制作者側の設計ミスによる障害やサイトが非常に混雑している時、URLが間違っている場合にも表示されることがある。”
このエラーが発生する主な理由としては、「閲覧者がそのサイトを閲覧する権利を持っていない」場合に発生します。
Webサイトなどは、それぞれのサイト毎に閲覧制限を持っています。その理由は簡単です。
例えば、アマゾンの管理者ページでは、誰が、いつ、何を購入したのかと言う情報を見ることができますが、この様な情報を誰でも自由に見る事ができたら困りますよね?
なので、「このページは誰でも自由に見れるページ」「このページはAさんにしか見れないページ」などの様な閲覧制限を持っているのです。
今回発生している403エラーの意味としては、「あなたにはそのサイトを見る権利がありませんよ」という事を伝えているのです。
それでは、403エラーが発生した際の原因の見つけ方や対応方法をみていきましょう。
原因
WordPressで403エラーが発生する理由としては下記の様な原因が考えられます。
- ディレクトリ・ファイルのアクセス権に問題がある
- WAFの設定に問題がある
- .htaccessファイルに問題がある
それぞれのパターンの対応方法を見ていきましょう!
対応方法
ディレクトリ・ファイルのアクセス権に問題がある場合
ディレクトリやファイルにはアクセス権という物が設定されています。
これはディレクトリやファイルの編集や閲覧を誰に許可し、誰に許可しないのかを設定する為に存在します。
このアクセス権が通常と違う設定になっていたために403エラーが発生する事があります。
なので、このエラーを解消する為にはそれぞれのディレクトリやファイルのアクセス権の変更が必要になります。
まずはFTPソフトウェアを使用して利用しているサーバーに接続しましょう。
今回はFilezillaというFTPソフトウェアを使用して説明していきます。
サーバーに接続が完了したら、とりあえずどれでもいいのでサーバー側のディレクトリを右クリックしましょう。表示されるメニューの中に「パーミッションの変更」という項目があるので、そちらを選択してください。

次に、表示された内容の中の「属性値(N)」という項目にディレクトリとファイルでそれぞれに合った数値を入力し、適用させていきます。

※ただ一点、WordPressのディレクトリ直下にある「wp-config.php」ファイルだけは例外で個別に属性値を設定する必要があるので注意が必要です。
それではパーミッションの変更を行っていきましょう。
①まずは、ディレクトリに対して行っていきます。
ディレクトリの場合は属性値を「755」にしてください。
その後、「サブディレクトリ内も再帰的に処理する」を選択し「ディレクトリにのみ適用する」を選択して「OK」をクリックします。
これで選択したディレクトリ以下にあるディレクトリの権限は変更されました。
②次にファイルを行います。
先ほどと同じディレクトリを右クリックで選択してください。
そして「パーミッションの変更」を選択した後、属性値に「644」を入力してください。
その後、「サブディレクトリ内も再帰的に処理する」を選択し「ファイルにのみ適用する」を選択して「OK」をクリックします。
これで選択したディレクトリ以下にあるファイルの権限は変更されました。
この作業をそれぞれのディレクトリとファイルで行ってください。
③最後に「wp-config.php」に対してです。
「wp-config.php」には「400」を設定してください。
設定方法は途中まで先ほどと同じですが、「サブディレクトリ内も再帰的に処理する」という項目がありませんので、属性値を変更したらそのまま「OK」を押してください。
これで403エラーは解消されます!
WAFの設定に問題がある場合
WAFとはWeb Application Firewallという意味で、悪意ある誰かがサーバーに侵入するのを防ぐ役目を果たしています。
しかし、このWAFが予期せぬ形で働いてしまい、管理者本人を侵入者と勘違いしてしまう事があるのです。
WAFが原因で403エラーが出ている場合、お使いのレンタルサーバーの管理画面からWAFの設定を変更する必要があります。
403エラーの原因がWAFであるかの確認は管理画面の設定を変更する事で確認ができます。
管理画面内に、「WAF設定」という選択項目があるのでそちらをクリックしましょう。
WAFを「無効」に設定変更した後に403エラーが発生するかを確認してください。
ここでエラーが発生すればWAFが原因という事です。(確認後はWAFを元に戻しておいてください。反映には10分ほどかかります。)
WAFが原因の時はレンタルサーバーごとに適した対応が必要になります。
▼それぞれのサーバーでのWAFの設定方法は下記サイトを参考にしてみてください。
■ロリポップ https://lolipop.jp/support/faq/cgi/000681/
■エックスサーバー https://penchi.jp/archives/13313.html
■ヘテムル https://heteml.jp/service/waf/
.htaccessファイルに問題がある場合
.htaccessとはサーバーの環境を設定するファイルのことです。
403エラーが発生した事で.htaccessを編集しなければいけない状況として考えられる原因は主に二つあります。
- 一つはシンボリックリンクの影響によってエラーが出ている場合。
- 二つ目はWordPressをサブディレクトリに使用している場合。
上記はそれぞれ編集する内容は違いますが、.htaccessを編集するという点は同じです。
なのでまずは、FTPソフトウェアを使用してサーバー上にある.htaccessファイルをダウンロードしましょう。

▼シンボリックリンクの影響によるエラーの場合
この場合の対応は簡単です。
下記の記述を「# END WordPress」の上に追記してください。
「Options +FollowSymLinks」
これで403エラーが解消されます。
と言いたい所ですが… サーバーの種類によってはこのままでは500エラーが発生してしまう事があります。
エラーが解消された方は上記でOKですが、もし500エラーが発生した方は先ほど追記した記述を下記に変更してみてください。
「Options +SymLinksIfOwnerMatch」
これでエラーが解消されます。
▼サブディレクトリでWordPressを使用していることで起こるエラーの場合
ダウンロードしたWordPressのディレクトリをトップとしてWebサイトを表示させている場合は問題ないのですが、別のディレクトリの下にWordPressのディレクトリをおいて表示させている場合には.htaccessの編集が必要になります。
編集するのは2箇所です。
.htaccessに下記の記述がありますので、
「RewriteBase /」
「RewriteRule . /index.php [L]」
これを次の様に書き直してください。
「RewriteBase /サブディレクトリ名/」
「RewriteRule . /サブディレクトリ名/index.php [L]」
「サブディレクトリ名」にはダウンロードしたWordPressのディレクトリの名前が入ります。
編集が終われば、FTPソフトウェアを使用してサーバーにアップロードしてください。
これでエラーが解消されます。
まとめ
いかがだったでしょうか?
403エラーと言ってもその原因や対応方法は様々です。
この他にも403エラーが発生する原因はいくつかありますが、今回は上記の3点について説明しました。
Webサイトを持つとエラーは付き物です。
エラー対応に慣れていきましょう。