対象: WordPress(Apache系サーバー)
難易度: ★★☆
所要時間: 約5分
サーチコンソールで重複コンテンツがあると指摘されたので、サーバー内の対象ファイルを削除しました。その時点ではトップページが表示されていたので「無事に整理できた」と思っていたのですが、しばらくしてサイト内の記事を開いてみると、なんと全部の記事で「404 Not Found」が出ていました。
「やっちまったなぁ」となりましたが、前日の作業で何を消したか、今回の症状の原因は何かを調べて、なんとか無事に直すことができました。今回は「WordPressでトップページしか表示されなくなった時の対処法」をご紹介します。
ページが表示されなかった原因
調べたところ、この症状が起こるタイミングは下記のようなことが要因で、パーマリンクの設定がサーバーに反映されていないことが原因でした。
- WordPressの引っ越しをした
- パーマリンクを変更した
- WordPress内のファイルを削除した
- .htaccessファイルを変更した
今回はサーバーのファイルを整理していたので「.htaccessが怪しいな」と思って確認したところ、予想通りそこにいませんでした。ファイル整理の際に、一緒に消してしまっていたようです。
解決方法
.htaccessに心当たりがない場合は、WordPress管理画面の【設定】→【パーマリンク設定】から、設定を一度「基本」に戻して保存し直してみましょう。それだけで.htaccessが再生成され、直ることがあります。
今回の私のようにファイル自体を消してしまった場合は、.htaccessを新しく作り直す必要があります。
.htaccessを作成する
テキストエディタで下記のコードを記載します。保存時の拡張子は.txtではなく.htaccessにします。
OSによっては「.htaccess」というファイル名(拡張子だけでファイル名がない状態)を直接付けられないことがあります。その場合は一旦「●●.htaccess」のような仮の名前で保存し、あとでファイル名部分を削除して「.htaccess」だけの名前に変更しましょう。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>サーバーにアップロードする
先ほど作ったファイルを、ドメイン直下のフォルダにアップロードします。アップロードしたら、ファイル名を「 .htaccess 」に変更します。

これで完了です。「404 Not Found」となっていた記事が復活しました。
.htaccessはファイル名が「.」から始まるため、OSやFTPソフトの設定によっては隠しファイル扱いになり、一覧に表示されないまま誤って範囲選択・削除してしまうことがあります。サーバー整理でファイルをまとめて削除する前には、隠しファイルの表示設定を必ずオンにしておく、可能であればBackWPupなどで事前にバックアップを取っておく、といった予防策がおすすめです。
まとめ
- トップページ以外が404になる原因の多くは、パーマリンク設定がサーバーに反映されていないこと
- まずは【設定】→【パーマリンク設定】を保存し直すだけで直ることが多い
- 直らない・.htaccess自体が消えている場合は、内容を作り直してドメイン直下にアップロードする
- .htaccessは隠しファイル扱いになりやすいので、サーバー整理の際は表示設定とバックアップを忘れずに

