4か月前にワードプレスでブログ記事を書くようになりました。
移転当時、たいして深く考えずにパーマリンク設定してしまったことを後悔しています。
「カスタム構造」を選んでいたのですが、四角の中には
/entry/%postname%
と入力していたのです。
postnameとは投稿名のことです。この記事でいうと、
「ワードプレス運用中に一投稿ずつパーマリンクの変更をした時はプラグインなしでも301リダイレクト処理を自動的にしてくれることが分かったけれど、パーマリンク設定の変更をしたら大変なことになったお話し。」
という文字列の最初の何文字かになります。
ブラウザのurlにタイトルのように表示されますし、「これはこれでいいかなー」と思っていたのですが、この日本語URLはコピペすると%E3%81%23%・・・・みたいな文字列に変換されてしまうのです。文字化けではなくエンコードによるもののようですが、そんなことは関係なくて、問題はこの不可思議な文字の羅列をSNSサイト(みんから、facebook)に貼り付けると正しいサイトを表示してくれない、という大きな問題があることが分かったのです。
これは大変、英数字の文字列に直さなくちゃ(っ °Д °;)っ
ということで、最初の内はクイック編集を開いてスラッグを編集することでURLの変更を行っていました。
自分のブログを開いて、URLを変更したものが反映されていくことを確認します。
何回も確認している内に、手順を間違えて表示してあった記事一覧から古いURLをクリックしてしまいました。
本来であれば存在しないページなので404エラーが出るはずです。
ですがそうではなく、
ワードプレスは自動的に古いURLから新しいURLに301リダイレクト設定をしてくれていたのです。
ワードプレス素晴らしい!\(^o^)/
これは助かる!
と、どんどんスラッグを編集していきました。
そこで気づいたのです。
/entry/ って必要?
自分のドメイン直下に投稿記事があるだけにしたい。という誘惑にかられました。
だってentryっていらないもん。
この設定はパーマリンク設定を変更しなくては実現しません。
ちょっと怖いなぁ。と野生のカンが働いて、まずはバックアップ。
そして、List Urlsというプラグインをインストールして元のURL一覧をリスト化しました。
後から恐ろしい思いをするわけですが、この時リストを作っておいて本当に良かったと思います。
パーマリンク設定を「投稿名」に変更しました。
→自動的に「カスタム構造」+「/%postname%」に変えられます。
これで邪魔だと思った「/entry/」は消えるはずです。
この変更はすぐに反映されました。urlからentryの文字は消えました。。。
不安はよぎっていたのですが、イヤな予感はあたりました。
パーマリンク設定を変更してしまうと、自動的に301リダイレクトしてくれないのです!!!
どういうルールがあるのかは分からないのですが、どうやら事前に英数字にスラッグを編集したものについては無事301リダイレクトが働いています。
変更したときのリダイレクト設定がワードプレスのどこか(勉強不足)に存在するからでしょう。
けれど、この手順なくパーマリンク設定を変更したものについては、すべてのページに404エラーが発生してしまったのです!!!
手動でリダイレクト設定するしかありません。
一括でできるプラグインもありそうですが、私の場合はすでに設定されているものと設定されていないものが混在しているので一つづつやるしかなさそうです。
ゆっくりするわけには参りません。
Google検索では上位に入る記事もあります。
それをクリックされたら404エラーです。
信用を失います。ましてやサチコさんに見つかりでもしたら・・・
急いで手段を探しました。
ここで見つけたのがredirectionというプラグインです。
エラーが出ているURLを「ソースURL」に。
新しい(飛んでほしい)URLを「ターゲットURL」に入力して、次々にルールを作っていきます。
ここで役に立ったのが、先にリスト化しておいた旧URL一覧と、プラグインのList Urlsです。
古いほうは一覧を作ってあったので、新しい(現在の)URL一覧もリスト化します。
そして、古いURLと新しいURLを横並びにして作業テーブルを作成したのです。
この一覧があれば怖いものなし。
ひたすらredirectionにコピペしてルールを作成します。
指がつりそうでした。
今は、すべてのページがちゃんと飛んでくれるのでエラーは出ません。
こんなことになるならば、最初からパーマリンク設定を吟味するべきだった、というお話でした。