プラグインAll-in-One WP Migrationで特定の記事を移行しました
下準備
サイトを別のドメインに丸ごとリダイレクトする場合は「.htaccessファイル」に新URLを指定すれば良いので簡単ですが、大量の記事をリダイレクトするためには下準備が不可欠。器用な方は下準備は飛ばしてください。
# Redirect Redirect permanent / 新URL
移行したいURLを抽出
エクセルでスラッグ抽出
リダイレクトコード
.htaccessファイルに追記するのですが、直接追記するのではなく「ダウンロード→エディタで開いて追記→保存してアップロード」します。試しに1つのURLをテストしてから足していくと確実です。
301リダイレクトを指定することにより、コードを外さない限り永遠の転送となります。
# Redirect RewriteEngine on RewriteRule ^スラッグ$ 新URL [L,R=301]
リダイレクトできない場合
途中からリダイレクトできなくなったので訂正しました。
スラッグの後に / を加えます。
# Redirect RewriteEngine on RewriteRule ^スラッグ/$ 新URL [L,R=301]
(もしくは、スラッグの後の $ を外しても良いらしいです)
参考までに、当サイトの場合はこのように指定。
# Redirect RewriteEngine on RewriteRule ^goto-travel/$ https://zbnrk.com/goto-travel/ [L,R=301]
複数の記事をリダイレクトするためには、このように延々と繋げていきます。
# Redirect RewriteEngine on RewriteRule ^スラッグ/$ 新URL [L,R=301] RewriteRule ^スラッグ/$ 新URL [L,R=301] RewriteRule ^スラッグ/$ 新URL [L,R=301]
もしくはRedirect permanent
上記のコードで転送できないサブディレクトリがあったのですが(なんでだろ)「Redirect permanent」でできました。
Redirect permanent /スラッグ/ 新URL
meta refreshタグは使わない方が良い
meta refreshタグでもリダイレクトは可能ですが(「〜秒後に新しいページへ移動します」というもの)、Googleでは推奨していませんので使わない方が無難です。
注意点
尚、上記の例はパーマリンクを「カスタム構造」「/%postname%」に設定した場合になります。
クエリー文字列【?p-***】を指定している場合はかなり複雑。
「旧URLにはクエリー【?p-***】が含まれているけど、新URLではクエリーを除外」を指定します。
(コードテストはしていません)
RewriteEngine on RewriteCond %{QUERY_STRING} (^|&)p=***(&|$) RewriteRule ^/?$ 新URL? [L,R=301]
ひたすらコピペ
サクラエディタにこの文を列記してから、エクセルで抽出したスラッグを延々とコピペしていったのですが、すぐに飽きて結局10日ほど要してしまいました。
RewriteRule ^スラッグ/$ https://zbnrk.com/スラッグ/ [L,R=301]
「Controlキー+Cキー」でコピー。「Controlキー+Vキー」で貼り付け。
リダイレクトチェック
移転元の記事を非表示もしくは削除
記事が重複しないよう1つ1つ「クイック編集→非公開→更新」します。もしくは削除でもOK。
プラグインは使わない方が良い
「簡単にリダイレクトできるプラグイン」もありますが、私は使わない方が良いと思います。
なぜならリダイレクトはすぐ解除できるものではないから。
プラグインの更新が途絶えたらリダイレクトをやり直すことになります。
同様に、テーマのリダイレクト設定も使わない方が良いかと。一見便利ですけどね。
しかしリダイレクト疲れた…もうやりたくない…