サイト移転したり、ワードプレスを色々カスタマイズしていると突然TOPページ以外404になってしまうことがあります。
突然404になってサイトが表示できなくなると、初心者の方は結構焦るのではないかと思います。
WordPressサイトが、突然404になっても焦ることはありません。簡単に元に戻りますので、この記事で対処方法と原因をまとめておきます。
WordPressのTOPページ以外が404になる条件は?
WordPressは、色々なパーマリンクでサイトを表示できるようになっています。自由にパーマリンクを設定できる反面、設定問題が起きると404になってしまう現象が発生します。
条件1:パーマリンク設定が基本以外になっている
WordPressのパーマリンクは初期状態では『基本』になっています。『基本』の場合は、パーマリンクのリライトは必要ありません。
基本以外に設定を変更すると、パーマリンクのリライトが必要になるため、パーマリンクのリライトが行われない場合に、404になります。
条件2:.htaccessに必要なリライトルールの記載がない
パーマリンクのリライトは、.htaccessにて行われます。.htaccessによく見かけるWordpressが自動的に追加する記述がそれです。
この記述は、パーマリンク設定が『基本』の場合は追加されません。基本以外にして更新すると、追加されます。
# 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
なぜ、突然404になってしまうのか?
サーバー移転によるもの
サーバー移転時に、.htaccessにリライト設定が無くなってしまったのに、パーマリンク設定が基本じゃないと404になります。
All in One Migrationでサーバー移転すると.htaccessはコピーされないので、この404は結構起こりやすいです。
プラグインによるもの
キャッシュ系プラグインなどで.htaccessを編集するプラグインを組み込んだ時に、リライトルールが消されてしまって、問題が起こるかもしれません。
どうすればTOPページ以外の404は直せるのか?
.htaccessにリライトルールが無いのが原因なので、以下の2つの方法のどちらかで対応します。
方法1が簡単です。
方法1:リライトルールを更新する
パーマリンク設定を何もせずに更新します。更新すると、.htaccessに記述が復活します。
方法2:.htaccessにリライトルールを追加する
リライトルールを更新しない場合は、.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
まとめ
WordPressで404になった時は、投稿やページのデータが残っていることが確認できているのであれば、とりあえず【パーマリンクの更新】を行うことで解消すると思います。
WordPressで404になった時に、今回ご紹介した2つの条件を満たしていない時がありましたが、なんでだろ?と思ったときもとりあえずパーマリンクの更新をしたら解消しました。