ChatGPT君とケンカになりました。
こちらの記事をリライトしていたときの話です。

WordPressプラグインで301リダイレクトは草w KUSANAGI使ってるんだからNginxでやればいいじゃないですかwww
ブチ切れた私は反論します。

どれだけ記事数あると思ってるんだ! それ全部rewrite作れってかい!
ChatGPT君はあっさり白旗を揚げました。

サイト丸ごとじゃなくて記事ごとの移転なんですね
ごめんなさい、マスターのおっしゃる通りです

記事にも書いてあるだろうが! よく読め!
記事に書いてたこと。
いちいちファイル叩いていられないのでプラグインに甘えます。
AIは一般論としての最適解を返すだけで、正解を返すわけではありません。
おかしいとか変とか思ったら、パワハラがごとく問い詰めた方がいいです。
……が、この後、

私はChatGPT君の逆襲を食らいました
本稿は、AIを活用して、大量の記事を効率よく301リダイレクトする方法を紹介します。
Nginxで301リダイレクトをする方法
(基本)サイト全体を301リダイレクトする方法
まず、基本として、Nginxでサイト全体を301リダイレクトする方法です。
rewrite ^(.*)$ https://hoge.net$1 permanent;

「全てのアクセスをhoge.netに301リダイレクトする」という意味です
一行で終わります。
この場合は、わざわざプラグインを入れるまでもありません。
記事ごとに301リダイレクトする方法
次いで、記事ごとに301リダイレクトするとなるとどうなるか。
rewrite ^/article-a/?$ https://wordpress.kimoota.net/article-a/ permanent; rewrite ^/article-b/?$ https://wordpress.kimoota.net/article-b/ permanent; rewrite ^/article-c/?$ https://wordpress.kimoota.net/article-c/ permanent;

地獄w
どの口で言いやがる。
これをやれと言ったのはチャッピー、お前だ。
でもChatGPT君の言うとおり。
3つならまだともかく100も200もあろうものなら……まさに地獄です。
冒頭で私が怒ったのもおわかりかと。
大量の記事を効率的に301リダイレクトする方法を思いつく
しかし、ここで気づきました。
100も200も自分で書くからめんどくさいんだ。

チャッピー執事にやらせればいいのでは!?
思いついた手順をChatGPT君に話してみる。

Consider it done, My Master.
AIを使って301リダイレクト設定を生成する手順(Nginx)
以下、私の思いついた手順です。
少なくともChatGPTについては、実際にテストしてみて、この通り出力されることを確認済みです。
他のAIでも同様にできると思われますが、XMLファイルが読み込めない場合もあります。
その点は御注意ください。
1. WordPress標準エクスポート
大量の301リダイレクト設定が問題となるのはサイト移転ではなくサイト分割です。
そして多くの場合で1or複数のカテゴリを移転すると思います。
そこで、

WordPress標準のエクスポートツールなどでカテゴリごとのXMLを出力します
管理画面→ツール→エクスポート→投稿→カテゴリ指定→XML出力
XMLの中にはエクスポートする記事群のURLが記述されています。
ここでは本サイトの親サイトの「きもおたねっと。」を例にとります。
<item>
<title>記事タイトル</title> <link>https://kimoota.net/sample-post/</link> ... </item>
2. XMLをChatGPTに渡してURL抽出
XMLをChatGPTにアップロードして、プロンプトを入力します。
アップロードしたXMLからURLを抽出して
抽出された記事URLのリストが並びます。
https://kimoota.net/post-a/ https://kimoota.net/post-b/ https://kimoota.net/post-c/
間違いがないか、リストをチェックします。
3. ChatGPTにNginx設定に変換させる
きもおたねっと。から当サイトきもおた・わーどぷれす。に記事を移すものとします。
プロンプトを入力します
以下のURLをhttps://wordpress.kimoota.net/へ301リダイレクトするNginx設定に変換してください
https://kimoota.net/post-a/
https://kimoota.net/post-b/
https://kimoota.net/post-c/
すると、次のように生成されます。
(rewriteではなく、location~return 301で処理しています)
location = /post-a/ {
return 301 https://wordpress.kimoota.net/post-a/;
}
location = /post-b/ {
return 301 https://wordpress.kimoota.net/post-b/;
}
location = /post-c/ {
return 301 https://wordpress.kimoota.net/post-c/;
}
4. 専用conf作成
一般的なNginxの場合
cd /etc/nginx/conf.d vi wordpress-redirect.conf
ファイルの中身に3のリストを記述。
location = /post-a/ {
return 301 https://wordpress.kimoota.net/post-a/;
}
location = /post-b/ {
return 301 https://wordpress.kimoota.net/post-b/;
}
location = /post-c/ {
return 301 https://wordpress.kimoota.net/post-c/;
}
チェックして再起動します。
# nginx -t # systemctl reload nginx
KUSANAGI9の場合
cd /etc/opt/kusanagi/nginx/conf.d vi wordpress-redirect.conf
生成した location ブロックを対象プロファイルのserverブロック内で読み込ませます。
include /etc/opt/kusanagi/nginx/conf.d/wordpress-redirect.conf;
再起動します。
# kusanagi restart
AIを使って301リダイレクト設定を生成する手順(Redirectionプラグイン)

実はWordPressプラグインを使う場合でも効率化を図れます
301リダイレクトをする代表的プラグインRedirectionではCSVファイルを読み込むことができます。
そのため、
「1. WordPress標準エクスポート」と「2. XMLをChatGPTに渡してURL抽出」はNginxと同じ。
ここで、次のプロンプトを入れればOKです。

RedirectionプラグインにインポートできるCSV形式で、旧URLと新URLの対応表を作ってください
CSVファイルができあがったらプラグインにインポートします。
まとめ
テストが終わった後のChatGPT君。

簡単すぎて、くそ笑いますwww

(いい気になりやがって……)
でも、威力絶大だったのは言うまでもありません。
ここまで効率化できるなら、Nginx環境では301リダイレクトでプラグインを使う意味はなくなります。
最終的にはChatGPT執事の勝ちとなりました。
301リダイレクトする機会は個人サイトを運営する分にはあまりないとも思われますが、

もしやるときは圧倒的に楽ちんになります!
ぜひ試してみてください!
なお、制作会社などで頻繁に301リダイレクトする機会がある場合。

Pythonでアプリを作っておくと、私に投げるよりも捗ります
こちらも試してみてください
VPSは、もう「黒い画面」だけじゃない。
「VPSは難しそう」と諦めていませんか? ConoHaのKUSANAGIなら、ブラウザ上の管理画面(KUSANAGI Manager)で、ドメイン設定からSSL発行まで直感的に操作可能です。
コマンド操作なしで世界最速級の環境を構築できる、今の時代の初心者にとっての最適解。私が長年愛用している理由がここにあります。
※当サイト経由で新規申し込みいただくと、特典として1000円分のクーポンをもらえます。
