本サイトは広告・アフィリエイトプログラムにより収益を得ています
【WordPress】パーマリンクの変更と.htaccessによる301リダイレクトの設定方法

【WordPress】パーマリンクの変更と.htaccessによる301リダイレクトの設定方法

2018/10/30
ブログのパーマリンク(URL)を変更したのでメモ。 パーマリンク設定の変更、リダイレクト設定、記事内URLの置換の3つの手順を行いました。

パーマリンクをすっきりさせたい

WordPressにブログを移行した際、パーマリンク設定を「日付と投稿名」にしたんですが、すべての記事に投稿日の日付(僕の場合はYYYY/MM/DD)が入るので無駄に長くなってしまっていたんですよね。 パーマリンク設定 :/%year%/%monthnum%/%day%/%postname%/
表示例:/2018/10/29/aozora-dekoniku/ で、これを以下のような感じにしようというわけです。 パーマリンク設定 :/%postname%/
表示例:/aozora-dekoniku/ こっちのほうがスッキリしてていいですよね。 というわけでサクサクやってしまいましょう。

パーマリンクの設定を変更

まずはWordPressのパーマリンク設定を変更しましょう。 「ダッシュボード」→「設定」→「パーマリンク設定」を進みます。
パーマリンク設定の変更
今回の場合であれば、「日付と投稿名」を「投稿名」に変更します。 これですべての記事のパーマリンクが変更されました。 この時点で、以前のURLはすべてリンク切れの状態になります。なので、可能であればリアルタイムのPVが少ない時間帯に実施するほうがいいですね。

リダイレクトの設定を.htaccessに記述

パーマリンク構造を変更したら、リダイレクトの設定をします。 以下を.htaccessに記述。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/(.*)$ /$4 [R=301,L]
</IfModule>
これで、https://sampale.com/YYYY/MM/DD/hoge が https://sample.com/hoge にリダイレクトされます。

Search Regexで記事内のURLを置換

パーマリンク構造の変更とリダイレクト設定は完了しましたが、記事本文にあるURLは以前のまま。 現在使っているテーマは、URLをそのまま記述するとブログカードとして表示されるようになっているため、以前のURLのままだとちゃんと表示されません。 そこで、「Search Regex」というプラグインを使って記事内に直接書いてある以前のURLを新しいURLに置換させます。 プラグインをインストール、有効化したら「ダッシュボード」→「ツール」→「Search Regex」と進んで設定画面を開きます。
Search patternに以前のパーマリンク構造、Replace patternに新しいパーマリンク構造を記入します。 年月日をいちいちすべて入れていたらキリがないので、正規表現を使ってサクッとやってしまいましょう。なお、正規表現を使うときはRegexにチェックを入れます。
  • Search pattern:|decoy284.net/([0-9]{4}/[0-9]{2}/[0-9]{2}|
  • Replace pattern:decoy284.net
下にある「Replace & Save」ボタンを押すと置換が開始されるので、「Replace」ボタンでどんなふうに置換されるか確認してから行いましょう。 完了すると、decoy284.net/2018/10/10/hoge → decoy284.net/hoge って感じで置換されます。 これで今回の作業は完了です。

パーマリンク設定はちゃんと考えて決めよう

作業時間は5分~10分くらいだったんですが、まぁミスったら404連発とかあるし、リダイレクトによってGoogleの評価が新URLに引き継がれるのでアクセス数が落ちるという可能性もあります。 リスクもあるのでパーマリンク構造の変更はかなり心理的なハードルが高くて、サクサクやってしまいましょう。とか言ってたくせにマジでここ数年重い腰が上がりませんでした。 たけしのおかげでやる気出ました。 できればあんまりやりたくないことなので、これからWordPressでブログを始めようとしている人は、パーマリンク設定だけはしっかりと考えたほうがいいですよ。(この記事見てる人にこれから始めようって人はいないと思いますが)