目次

この記事の目次です。

1. 403 Forbidden エラーとは
2. Forbiddenの意味と403 Forbidden エラーの意味
3. 403 Forbidden エラーの原因(主なパターン)
4. ワードプレスの403 Forbidden エラーの解決方法(事象、原因、対処法)
 ワードプレスで「アクセスしようとしたページは表示できませんでした。」と表示される。
 ロリポップでワードプレスのElementorが403 Forbiddenエラーになる
5. その他の403 Forbidden エラーの解決方法(事象、原因、対処法)
 利用しているレンタルサーバでCGI/PHPが制限されている
 Apacheで403 Forbiddenが表示される原因

更新履歴

1. 403 Forbidden エラーとは

403 Forbidden エラーとは、「閲覧禁止」あるいは「アクセス拒否」を意味するエラーです。

403 Forbiddenの表示例

たとえば、エックスサーバ―では「403 Forbidden アクセスしようとしたページは表示できませんでした。このエラーは、表示するページへのアクセス許可がなかったことを意味します。」と表示されます。

エックスサーバ―の例)403 Forbidden アクセスしようとしたページは表示できませんでした。

たとえば、エックスサーバ―では「403 Forbidden アクセスしようとしたページは表示できませんでした。このエラーは、表示するページへのアクセス許可がなかったことを意味します。」と表示されます。

403 Forbidden アクセスしようとしたページは表示できませんでした。このエラーは、表示するページへのアクセス許可がなかったことを意味します。

2. Forbiddenの意味と403 Forbidden エラーの意味

Forbiddenの意味と403 Forbidden エラーの意味についてです。

Forbiddenの意味

Forbiddenは、動詞の「forbid」の過去分詞形あるいは「禁断の、禁制の、禁じられた」という意味の英単語(形容詞)です。

403 Forbiddenは「禁じられたもの」があったという意味のエラー

何らかの原因で、ページをApacheやNginxなどのWeb公開するために利用されるサーバーのソフトウェアがページを見る許可を与えない場合に「403」というステータスコードを設定するルールがあり、 Forbidden(禁じられたという意味)のエラーメッセージを表示したページが使われ、「403 Forbidden エラー」「403 エラー」などといわれます。

HTTPステータスコードとは

HTTPステータスコードは、ApacheやNginxなどのWebサーバが応答の意味を表す3桁の数字のコードです。

詳細

3. 403 Forbidden エラーの原因(主なパターン)

403 Forbidden エラーの原因は、いろいろあります。 以下は、ワードプレス(WordPress)やロリポップ(lolipop!)などのレンタルサーバーでよく見かける原因を主なパターンです。

ディレクトリリスティング機能を禁止する設定に反する

index.htmlやindex.phpがない状態で、ディレクトリにディレクトリ名でアクセスした場合に403 Forbidden エラーが表示されます(※最近の主なレンタルサーバでは)。 これは、セキュリティ上の懸念から、ディレクトリ名でアクセスした場合にindex.htmlやindex.phpがないときは、ディレクトリ内のファイル一覧を表示する機能(ディレクトリリスティング)があり、それを禁止する設定をしているためです。

ディレクトリリスティングとは

ディレクトリリスティングは、URLでWebディレクトリを指定したときに、インデックスファイルがない場合にディレクトリのファイル一覧を表示する機能です。 意図せずにディレクトリリスティングを有効にしている場合も多く、それを悪用したサーバー攻撃の手法のことを指す場合もあります。

詳細

実行権限のないディレクトリに置かれたCGIへのアクセス

PHPではなく、PerlなどのCGIを利用する場合は、実行権限(パーミッション)を設定しないと実行できないようになっています。 ファイルだけでなく、CGIが置かれているディレクトリにも実行権限を設定する必要があります。

WAFで拒否されるパターンの文字列を含んでアクセス

WAFを設定している場合に「<script>」などのXSS攻撃に使われるパターンなどの文字列を含んだアクセスを行うと拒否されます。

4. ワードプレスの403 Forbidden エラーの解決方法(事象、原因、対処法)

ワードプレス関連の具体的な403 Forbidden エラーの事象とその原因、対処法についてまとめていきます。

ワードプレスで「アクセスしようとしたページは表示できませんでした。」と表示される。

ワードプレスで「アクセスしようとしたページは表示できませんでした。」と表示される場合は起点となるindex.phpが実行できるようになっているかまずは確認しましょう。

サイトアドレス (URL)の位置のディレクトリ階層にindex.phpがない

ワードプレスは管理画面以外はすべてのリクエストをサイトアドレス (URL)の位置にあるindex.phpに集約してそこで振り分けて処理します。 このindex.phpがないとディレクトリアクセスになって、多くのサーバでは禁止されたディレクトリアクセスは禁止されているため、 403 Forbiddenエラーとなり「アクセスしようとしたページは表示できませんでした。」と表示されます。

まずはサイトアドレス (URL)の位置のディレクトリ階層にindex.phpがあるか確認しましょう。

パーマリンク設定時にサイトアドレス (URL)の位置のディレクトリ階層に.htaccessがない

ワードプレスは管理画面以外はすべてのリクエストをサイトアドレス (URL)の位置にあるindex.phpに集約してそこで振り分けて処理します。 このindex.phpにアクセスを集約するのは同階層にある.htaccessです。.htaccessがないとindex.php以外のURLはindex.phpに到達しなくなります。 パーマリンク設定時はindex.php?p=xxxのようなindex.phpを使用しないURLになりますのでトップページ以外は到達しなくなります。 そうするとワードプレスの場合多くは.htmlなどの拡張子のあるファイルのURLではなく/で終わるURLとなりますので、ディレクトリアクセスになって、禁止されたディレクトリアクセスになり、 403 Forbiddenエラーとなり「アクセスしようとしたページは表示できませんでした。」と表示されます。

サイトアドレス (URL)の位置に.htaccessがあるか確認しましょう。

パーマリンク設定時にサイトアドレス (URL)の位置のディレクトリ階層に.htaccessの出力が消失している

パーマリンク設定時にワードプレスがサイトアドレス (URL)の位置のディレクトリ階層に.htaccessに書き込みが行えないなどして、 本来出力されている.htaccessの記述がなくなっている場合も403 Forbiddenエラーとなり「アクセスしようとしたページは表示できませんでした。」と表示されます。

サイトアドレス (URL)の位置の.htaccessに「# BEGIN WordPress」から始まる出力があるか確認しましょう。 出力がない場合は.htaccessのアクセス権がプログラムから書き込みが行える状態になっているか確認しましょう。

なお、手動で例えば以下のようなワードプレスが出力する記述を追記することで復旧することもできます。 ※RewriteBase、RewriteRuleのところは構成により異なる場合があります。

# BEGIN WordPress
# "BEGIN WordPress" から "END WordPress" までのディレクティブ (行) は
# 動的に生成され、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

ロリポップでワードプレスのElementorが403 Forbiddenエラーになる

ロリポップでWAFを利用している場合にワードプレス(WordPress)のプラグインのElementorを使うと403 Forbiddenエラーとなる場合があります。

解決案1)ロリポップのWAFを無効にする対処方法

ロリポップにログインして、「セキュリティ>WAF設定」から、該当のサーバーの「設定変更」の「無効にする」を選択して「無効」に設定します。

解決案2)ロリポップのWAFの抽出されたシグネチャを.htaccessで除外する対処法

ロリポップにログインし「セキュリティ>WAF設定」の対象ドメインのログ参照にて、抽出されたシグネチャを確認し、以下のように除外する記述を.htaccessに記述します。

SiteGuard_User_ExcludeSig <シグネチャ名>

5. その他の403 Forbidden エラーの解決方法(事象、原因、対処法)

ワードプレス以外のその他の具体的な403 Forbidden エラーの事象とその原因、対処法についてまとめていきます。

利用しているレンタルサーバでCGI/PHPが制限されている

たとえば、GMOクラウド レンタルサーバーのiCLUSTA+の一般ユーザー(個別ユーザー)の領域など、CGI/PHPの利用が制限されている場合に、CGI/PHPのコンテンツをアップしてアクセスすると403 Forbiddenエラーとなる場合があります。

解決案)CGI/PHPが実行できるユーザー、プランを確認する

レンタルサーバーの仕様を確認して、CGI/PHPが実行できる領域/プランに変更して、CGI/PHPのコンテンツを公開します。

Apacheで403 Forbiddenが表示される原因

Apacheで403 Forbiddenが表示される原因をいくつかあげてみました。

更新履歴

更新履歴になります。

トップ技術データベース403 Forbidden