ワードプレスでブログ運営をしている際、「Internal Server Error 500」というエラーが表示され、記事やサイトが閲覧できない状態になることがあります。
一般的には、サーバー側のエラーと思われがちですが、他に原因がある場合がありますので、対処法等を含めてご紹介したいと思います。
記事が表示されない場合
HTTP 500のエラーが出た時は、管理者側の問題が原因となって、サーバーに拒否されている状態だと思えば良いと思います。
その多くは、プラグインによるエラーです。
以下のような症状が出た場合、プラグインの更新等による影響を受けている可能性があります。
- 記事のタイトルだけが表示され、本文は何も表示されない。
- 特定の記事だけが表示されなくなる。
- 特定のページ(トップページ等)だけの表示が崩れる
私の場合、これらの原因となっているプラグインが「easy table of contents」でした。
一般的には、互換性が高くて安全なプラグインとして知られていて、多くのブロガーに使われているツールです。
ところが、ワードプレスのバージョンアップや、プラグイン自体のアップデート等をきっかけに、上手く動作しなくなることがあるのです。
稀なケースであはるのでしょうが、実際に起こっている事象なのです。
ブラグインを停止すると、症状が改善されましたが、多くの記事の目次が失われる事になるため、追加の対応が必要になります。
具体的には、他のプラグインへの移行や、トレースによるバグ修正等です。
「Internal Server Error 500」のサーバー側対処
WordPressの運用中、「Internal Server Error」(ERROR番号:500)が表示された場合、プラグイン等の影響により「.htaccess」が書き換えられ、サーバーの環境に沿わない設定がされている恐れがあります。
対処法として、プラグインを一旦削除し、「.htaccess」を下記のように設定することでエラーが解消される可能性があります。
この際、必ず事前に各種ファイルやデータ、MySQLデータベースのバックアップをとりましょう。
ユーザーの自己責任において操作をすることになりますので、他に改善方法が無い場合に検討してください。
WPXサーバーの場合
サーバーの管理画面からWPの設定に入り、「.htaccess」を下記のように設定してみましょう。
既に同記載がある場合には、問題ありません。
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Easy Table of Contentsの不具合?
私の体験したケースでは、「easy table of contents」を停止すると、問題が解消されました。
しかし、目次として表示されていた部分が「TOC」という表示(ショートコード)になってしまいます。
長い記事などでは、目次が欠かせない役割を果たすこともあり、なんとかこれを改善したいと思うのですが、どうやら設定等の問題ではないようでした。
そこで、TOCのショートコード自体を削除し、目次の無い記事にして検証してみました。
記事から目次を消して「easy table of contents」を有効化してみたわけです。
しかし、不思議なことに、これでも表示が消えてしまうのです。
つまり、TOCを使用していない状態でも、記事やサイト全体に影響を及ぼしている状態ということになります。
この結果、目次プラグインを入れ替えるか、トレース等によってこの問題を解消するしかないという結論に至ったわけです。
アフィンガーとの相性
ワードプレスの有料テーマとして有名な、アフィンガー(WING5等を含む)は、もしかすると「easy table of contents」との相性が悪いのかもしれません。
何故かと言うと、アフィンガー管理画面で、ページのレイアウトを変更すると表示が改善されたことがあったからです。
具体的には、オススメ記事のランキング表示をトップページ上部にしている状態で「easy table of contents」を有効化すると、該当ページが上手く表示されないという不具合がありました。
オススメ記事の位置を変えると改善(正常化)されるので、これについては、おそらくWING5との相性の問題だと思っています。
まとめ
ワードプレスの不具合の多くは、プラグインが原因になっていることが多いです。
何かトラブルが生じた時には、停止できるプラグインを全てOFFにしてみることをお勧めします。
使用しているテーマによって、プラグインとの互換性が悪い場合もあると思いますので、関連記事等を調べてみるのも有効な対策だと思います。