WordPressの404問題完全解決
このブログは、ココログから引っ越して来ています。その時、URLがなるべくココログと共通になる様に、postnameの部分を同じにしています。
例えば、次のURLの場合、
の場合、赤字部分を"oichinote"に書き換える事で、ココログのURLから移動できる様になっています。
ところが、次の問題が起きており、困っていました。
その解決をしたのが次の記事です。
postnameの末尾の"-“を取り除くように、.htaccessを書き換えました。
ところが、まだ404エラーを起こすページを見つけてしまったのです。
色々調べてみると、postnameが次の事場合にエラーになる様です。
- “—ABC" (先頭にハイフン)
- “AB–C" (ハイフン2個)
- “ABC-" (末尾にハイフン)
postnameが"-“で始まっていたり終わっていたりする場合と、複数の"-“が入っている場合です。
この様なpostnameは、普通の方法では作れません。SQLを使って直接データベースを変更する必要があります。
いったいどうすれば404エラーを解消できるのでしょうか? やはり、前回と同じ方法で、postnameを書き換えて.htaccessを設定しなければならないのか?!
どういう条件で404エラーになるかがわかったので、この条件のpostnameになっている記事から、余分な"-“を取り除きました。
「はぁ〜、次は.htaccessの書き換えか…」と思いつつ、WordPressにとって不都合な"-“が入ったままのURLでアクセスすると、ちゃんと表示されるじゃないですか!?
どうも、WordPressは、URL(postname)から余分な"-“を取り除く処理をした後で、そのpostnameの記事を探しに行く様です。
その為、記事自体が正しいpostnameになっていれば、URLに余分な"-“があってもアクセス可能です。
先ほどの例で説明すると、postnameが"ABC"になっていれば、次のどちらのURLでもアクセス可能です。
- “—ABC" (WordPressにより、先頭のハイフンが消され、"ABC"にアクセスされる)
- “ABC-" (WordPressにより、末尾のハイフンが消され、"ABC"にアクセスされる)
postnameを"AB-C"としておけば、
- “AB–C" (ハイフン2個が、WordPressにより1個のハイフンに変更され、"AB-C"にアクセスされる)
でのアクセスが可能です。
どちらも、WordPress標準の.htaccessを書き換えせずにです。
この方法に行き着くまでに、非常に苦労しました。
実は、もう一つ問題が残っているのです。WordPressは、同じpostnameの記事を許さない様です。
カスタムパーマリンクで、URLが違っているので、それぞれの記事にアクセスできるのですが、同じpostnameを持つ記事を編集しようとすると、postnameが強制的に変更されてしまいます。
これはまずい…。次の課題です。まあ、書き変わった後に、再度SQLで修正すれば良いだけなのですが。
ディスカッション
コメント一覧
まだ、コメントがありません