WordPressで突然トップページしか表示されなくなる


 今朝からこのブログのトップページ以外のページがすべて404 Not Foundになっていました。
 朝「あれ?」と思ったのですが、時間がなくて放置、帰ってきてしばらく考え、ハッとひらめきました。
 かなりレアケースだと思うのですが、一応原因と解決方法をメモしておきます。

 この現象が発生するのは、パーマリンクの設定をカスタマイズし拡張子「.html」等を使用している場合。なおかつ、サーバの容量がギリギリ一杯のケースです。
 これを書いただけでピンと来る人にはすぐわかるでしょうが、要するに.htaccessをWordPressが書き換える際、消したはいいもののサーバのディスククォータにひっかかって書き込めなかったわけです。実体のあるindex.phpは見えますが、その他のページが文字通りのhtmlファイルを探しに行ってしまい、結果としてNot Foundになる、というカラクリです。
 本当にうまいこと容量を使い切らないと発生しないので、遭遇した人も少ないのではないでしょうか。最初から見られなかったらすぐ.htaccessだとわかりますし。

 解決法としては、とりあえず要らないファイルを削除してスペースを空け、「各種設定>パーマリンク設定」で設定を変えないまま「設定を更新」をクリック。他にも色々な更新のタイミングで.htaccessを再作成していると思うので、スペースさえ空けば色々いじっているうちに回復するのではないかと思います。