WordPressでパーマリンク設定後に404エラーが出る場合

先日のエントリにもあるように、WordPress 2.7の日本語版をインストールしていろいろいじっています。そこで、パーマリンクを設定する場面がありましたが、ここでつまずいてしまいましたので覚え書きがてらエントリにしてみます。

何につまずいたかというと、パーマリンクを設定したあとにエントリの詳細ページやカテゴリー一覧ページに行こうとすると、WordPressが404エラーを返してくるということにです。パーマリンクを設定しただけであとは勝手にファイルやDBの移動をしてくれるのだろうと思っていましたが、どうやらそう甘くはありませんでした。

必死に検索&試行錯誤して、解決策を見つけました。

エントリの詳細が表示されない件について

まず、エントリの詳細が表示されない(404エラー)件。これについては、mod_rewriteの有効化により正常にリダイレクトされるようになりました。以下のWebページが参考になります。

パーマリンクの設定 - WordPressの使い方

http://www.adminweb.jp/wordpress/permalink/index.html

カテゴリー一覧のページが表示されない件

次に、カテゴリー名をクリックしてそのカテゴリーに属するエントリ一覧を表示させようとしたときにやはり404エラーになって、表示されないという件についてです。これの解決には相当苦労しました。いくら検索しても答えが出てきません。仕方がないので、設定を一つ一つ見ていって、関連がありそうなところをいじって再読み込み、の繰り返しをしました。

結果、次の箇所を変更することで解決しました。

管理画面の「設定」→「パーマリンク設定」から、「オプション」→「カテゴリーベース」の欄を見ます。そこが一般的には空欄になっていると思いますが、そこに明示的に「category」と入力します。ここに入力する文字列は、それぞれ各自がカテゴリーのルートディレクトリとして設定している文字列です*1

以上のこと(だけ)で、カテゴリー一覧が正しく表示されました。「タグベース」についても同じことが言えると思いますが、まだ試していないので分かりません。タグ一覧が表示されたときにまた試してみようと思います。

他にも

Apache の Directory ディレクティブの中に `AllowOverride All` を記載していなかったことが原因の場合もありました。

まとめ

以上、WordPressをパーマリンク表記にするときに自分がつまずいた箇所について記しました。もしこの記述が、他に同様の症状で悩んでいる方々の手助けになれば幸いです。

*1:どこかで設定するところがあったと思う

Powered by はてなブログ