WordPress記事のパーマリンク変更と301リダイレクトの一括設定

シクロクロスのレースシーズンが終わってやや燃え尽き気味なこの頃。のんびり走りに行こうにも、気温がちょうどいい季節なのに毎週末雨。
練習はZWIFTでするとして、暇な時間はウェブサイトを触ったり、動画編集したり…

さて、サイト開設から8ヶ月を越えて記事も増えてきたので、当初より放ったらかしだった部分に手を入れ始めている。
手始めに、デフォル設定のままだったパーマリンク設定を変更し、それに伴ってURL転送(301リダイレクト)設定を行ったので覚書。

パーマリンクの変更

WordPressでは、各記事のアドレスを

管理画面の設定→パーマリンク設定

で一括変更できる。

従来は日付と投稿名

skmzlog.com/2021/1/1/hoge/

だったのを
投稿名のみにして、以下のような形式に変更する。

skmzlog.com/hoge/

投稿年月日をURLに入れる意味はないし、こちらのほうがアドレスがシンプルになって良い。

301リダイレクト設定

このままだと各記事のURLがリンク切れになってしまうほか、Googleのページ評価もゼロから再スタートになってしまうので、
旧URLから新URLへの転送設定を行う。

設定ファイルに手作業で書き込む方法もあるけど、今回はなんせ数が多いのでプラグインを使って一括で変更する。

まずはRedirectionというプラグインを導入。

管理画面のプラグイン追加から検索してインストールできる。

インストールと有効化を行ったら

ツール→Redirection

で設定画面へ。

今回は正規表現を使って対象記事のURLを一括で転送するため

転送ルール→新しい転送ルールを追加

URLは以下のように変わるので

日付と投稿名 /2021/1/1/hoge/ → 投稿名のみ /hoge/

「/数字/数字/数字/文字列/」を抽出して「/文字列/」に置換するような処理を行えればOK。

ソースURL欄右側のプルダウンから正規表現を有効にして

ソースURL: ^\/\d\/\d\/\d\/(.)\/

ターゲットURL: /$1/

を入れる。

保存したら301リダイレクト設定が有効化される。

パーマリンクの変更からリダイレクト設定までの間はリンク切れを起こすので注意。

弊害

今回、カテゴリ(/category1/)やタグ(/tag/hoge/)のURLに変更はないが、
リダイレクト設定ではURL内の

/数字/数字/数字/

という文字列を消して転送を行う処理を行っているので、
本来存在しない

/2000/1/1/category1/

といったアドレスを入力しても

/category1/

に転送される。

まぁ、弊害っていうほどのものではないのだけれど。