WordPress: スラッグを入力ミスして、修正&リダイレクトした話

この記事は約3分で読めます。
記事内に広告が含まれています

WordPress: スラッグを入力ミスして、修正&リダイレクトした話

こんにちは、さち です。

先日、いつものようにブログを更新したのですが、記事ページの URL(スラッグ) の指定を間違えるという凡ミスをしてしまいました。

しかも、そのミスに気づいたのは翌日になってから。

完全にやってしまった……

スポンサーリンク

記事の URL(スラッグ) を間違えた

  1. ブログ更新の通知がツイッターに投稿されました。しかし、記事の URL をよく見ると、先頭を「excel」としたつもりが「e」が消えて「xcel」になっています。(ただし、リンクは正常に動作している)
    WordPress: スラッグを入力ミスして、修正&リダイレクトした話
  2. WordPress の管理画面を見ると、記事の「スラッグ」の入力にミスが……。これが原因です。
    WordPress: スラッグを入力ミスして、修正&リダイレクトした話

このミスに気づいたのは翌日。かなり時間が経っているので、次のような事情を考えなくてはいけません。

  • すでに Google が誤った URL(スラッグ) で検索に登録している
  • ブログ更新のツイートに「いいね」や「リプライ」をくれた人がいるのでツイートの削除&再投稿はしたくない

つまり、URL を変更するだけでは済みません。変更前の 旧URL を 新URL にリダイレクト(自動転送)する必要があります。

解決方法

おまえき

前項で URL を変更するだけでは済まないと書きましたが、実際の解決方法は URL(スラッグ) を変更するだけです。すみません。

ただ、当時の私は本当にそう思っていて「.htaccess」を使って 旧URL(修正前のスラッグ) から 新URL(修正後のスラッグ) にリダイレクト(301)するようにしていました。

しかし、その後『もしかして、こんなことしなくても大丈夫なのでは?』と淡い期待をして「.htaccess」の適用を外してみると、普通にリダイレクト(301)されました。

WordPress は、自動的に 旧URL からリダイレクトしてくれるのです。賢いですね。

操作手順

ユーザー側でリダイレクトの設定をする必要はありません。スラッグを修正するだけです。

  1. 誤ったスラッグを……
    WordPress: スラッグを入力ミスして、修正&リダイレクトした話
  2. 修正して記事を保存します。これだけで解決です。
    WordPress: スラッグを入力ミスして、修正&リダイレクトした話
  3. 試しに、旧URL にアクセスしてみます。Firefox の開発者ツール(ネットワーク)で確認すると、ちゃんと 旧URL から301リダイレクトされて 新URL に移動しているのが分かります。
    WordPress: スラッグを入力ミスして、修正&リダイレクトした話

難しく考える必要なんてなかったですね。

ちなみに

スラッグを変更した場合、データベースはどうなっているのでしょう? 実際に、確認してみました。

「wp_post」テーブルを開くと、該当記事の「post_name」が修正後のスラッグに変更されています。この記事の ID は「3146」です。

WordPress: スラッグを入力ミスして、修正&リダイレクトした話

続いて、「wp_postmeta」テーブルを開きます。「post_id」が先ほどの ID「3146」と同じものを探すと、「meta_key」に「_wp_old_slug」と書かれたレコード(行)があります。ここには、その名のとおり「meta_value」に修正前のスラッグが記録されています。

WordPress: スラッグを入力ミスして、修正&リダイレクトした話

WordPress はこれらのデータを使って、自動で 301リダイレクト をしてくれるようです。初心者にも優しい仕様、素晴らしいです。

試してはいませんが、恐らくスラッグを変更するたびに「_wp_old_slug」が増えていき、すべてのスラッグ(旧URL)から 301リダイレクト してくれるのだと思います。

コメント

タイトルとURLをコピーしました