1. HOME
  2. 開発・ブログ運営
  3. WordPress
  4. WordPress で全ての記事ページが 404 Not Found になるトラブルの解決方法
2016年07月28日
WordPress ループの外で投稿者名を取得する
2012年05月18日
(続)WordPress が 勝手に<p>タグを入れない ...
2012年06月19日
フィルターフックを使って TwitterTools をカスタマ ...
2012年04月29日
WordPress の機能を拡張したい場合、functions ...
2012年07月26日
WordPress のテンプレートファイルで、カテゴリ情報(カ ...
2014年08月28日
WordPress 人気プラグイン ベスト200(2014年版 ...

WordPress で全ての記事ページが 404 Not Found になるトラブルの解決方法

全ての記事ページが 404 not found とかになると焦りますよね。ほとんどの場合の原因は .htaccess のようです。また Nginx な人は .htaccess を修正しても意味がないのでご注意を。

WordPress のトラブルで多いのが画面が真っ白になって表示されないトラブルですが、トップページは表示されるのに記事ページが 404 not found となって表示できないトラブルも多いみたいです。

関連記事:WordPress インストール直後のトラブル(管理画面は表示されるのに、ブログのトップページが表示されない)

私も Apache 2 から Nginx に切り替えた時に同様のトラブルが発生しましたのでその対処方法を。

なお、この記事は、トップページは表示されるのに「全ての」記事ページが 404 Not Found となってしまうトラブルの対処方法です。

一部の記事ページのみが 404 Not Found となる場合には別の問題なので、この記事の対処法では解決しませんのであしからず。


記事ページが 404 not found になる原因

ほとんどの場合、WordPress のパーマリンク設定を変更している場合に起こるようです。パーマリンクの変更を行うと .htaccess が自動的に変更され(または新規で作成され)、パーマリンク変更後に正しくアクセスできるようになりますが、何らかの原因で、.htaccess の内容とパーマリンクの設定で相違が生じた場合に、404 not found となるようです。


.htaccess とパーマリンク設定の整合を取る

ということで、パーマリンク設定と .htaccess の内容の整合をとってあげれば解決するわけですが、.htaccess とパーマリンク設定の整合を取る最も簡単な方法は、WordPress 管理画面から「設定」>「パーマリンク設定」に移動して、特に何の変更もせず「変更を保存」ボタンを押します。

そうすることによって WordPress が新たに .htaccess に設定を書き込んでくれるのでパーマリンク設定と .htaccess の整合が取れます。

それでも治らない場合は、一旦、パーマリンク設定を別の設定にして「変更を保存」、再度元の設定に戻して「変更を保存」すると上手くいく場合があるようです。


それでもダメ・・・

それでもダメな場合には、直接 .htaccess に書き込んでみます。.htaccess ファイルは WordPress をインストールしたディレクトリ直下(wp-config.php などがあるディレクトリ)にあります。内容は以下の通り。


WordPress のサイトアドレスが、http://yourdomain.com/wp などトップディレクトリじゃない場合は、4行目と8行目を修正してください。仮に、http://yourdomain.com/wp だった場合、


となります。


WEB サーバーが Nginx なんだけど・・・

.htaccess は WEB サーバーが Apache の場合に有効です。WEB サーバーが Nginx の場合にはいくら .htaccess を修正しても 404 not found 問題は解決しません。

ということを私は知らずにちょっとはまりました。。

Nginx の場合には、Nginx の設定ファイル(/etc/nginx/nginx.conf とか /etc/nginx/conf.d/default.conf など)の、Server セクションに、


try_files .. の一業を追加してみてください。.htaccess と同様に、もし WordPress のサイト URL が http://yourdomain.com/wp などの場合には、/index.php?q=$uri&$args; の部分が /wp/index.php?q=$uri&$args; になりますので適時変更してください。

変更後は Nginx の設定を再読み込みさせます。

$ sudo /etc/init.d/nginx reload

まとめ

ページが真っ白になったり 404 not found になると非常に焦りますが、落ち着いて作業すれば大丈夫だと思います。

でわでわ。








この記事にコメントする





Copyright © 2012 - 2014 MacBook Air とWordPressでこうなった All rights reserved
Powered by WordPress.