生活、IT・WEB、ガジェットに密着した情報をお届けしています

WordPressで突然403エラーになったときの対処法

   

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の記述は正しいか確認(ルートディレクトリ設定を行うときに起きやすい)

上記を確認してみましょう。

ご観覧ありがとうございました!

スポンサーリンク