スポンサーリンク
WordPressで構成した数サイトが突然403エラーなり、正常に表示されなくなりました。
403エラーとはサイトは存在するが、特定のアクセス者にページを表示する権限が付与されず、アクセス拒否されたことを示すものです。
サイトのデータベース等に問題は生じていないので、サイトが消えてしまったといったことはないので安心てください。
WordPressで403エラーになってしまう代表的な原因は、
- サーバー障害
- index.phpの記述ミス
- htaccessの設定ミス
の3つです。
今回は僕のサイトを事例にした403エラー対処法とその他対処法をいくつかご紹介します。
CDNによる原因
今回、僕のサイトが403エラーになった主な原因です。はじめは、サーバーの障害かと思いましたが、使用しているサーバー(Xserver)の障害情報は出ていなかったので違うようです。
そこで、aguse.jpを利用して403エラーになったサイトのサーバー情報を確認してみました。
aguse.jp
https://www.aguse.jp/
すると、ネームサーバーが使用サーバー(xserver)に設定されておらず、CDNのアドレスに設定されていました。(CloudFlare)
CDNとは、WEBサイトの表示速度を上げるために、インターネット上に分散配置されたキャッシュサーバーのことで、これがXserverにより、アクセス拒否されたようです。
なので、レジストリ(お名前.com)に移動して、ネームサーバーをCDN(CloudFlare)
からxserverのものに書き換えました。
これにより、403エラーを対処することができました。
最近ではキャッシュ系のプラグインを利用したり、PHP7やNginx、mod_pagespeedなどを導入すればサイトの表示速度を大幅に改善できるので、CloudFlareをはじめとしたCDNを利用しなくてもよいかもしれません。
htassの記述
403エラーは、htassの記述の原因もあるようです。主にアクセス制限による記述があるようです。なので、IPによるアクセス拒否設定などしていないか確認してみましょう。(order deny,allow 、deny from all、deny from~など)
Xserverでは、サーバーパネル上でアクセス制限拒否を設定できるので、htassの記述は必要ありません。
index.phpの記述と設定による原因
これは、WordPressサイトをルートディレクトリ設定を行うときに起きやすいです。
ルートディレクトリ設定は、index.phpに以下のような記述をします。
<?php /** * Front to the WordPress application. This file doesn't do anything, but loads * wp-blog-header.php which does and tells WordPress to load the theme. * * @package WordPress */ /** * Tells WordPress to load the WordPress theme and output it. * * @var bool */ define('WP_USE_THEMES', true); /** Loads the WordPress Environment and Template */ require('./設定したサブディレクトリ/wp-blog-header.php');
上記のように正しく記述できているか確認してみましょう。
また、index.phpがpublic_html直下に置いてあるか、そして、余計なhtmlファイルなどが紛れていないか確認しましょう。
最後にブラウザのキャッシュをクリアにして再アクセスし、正常にサイトが表示できるか確認してみましょう。
まとめ
WordPressで突然403エラーになったときは、
サーバーに何か障害が起きていないか確認(CDNをかましていないか確認)
htassの記述が正しいか確認(特にアクセス制限に関する記述)
index.phpの記述は正しいか確認(ルートディレクトリ設定を行うときに起きやすい)
上記を確認してみましょう。
ご観覧ありがとうございました!
スポンサーリンク