自分で作成したサイト(以下「旧サイト」)をWordPressに移行する場合、Export機能はないので、極力手間をかけずに移行するのは大変だが、移行できたとしても困るのが、URLの扱い。
URLが異なると「ページが見つかりません」になってしまうサカイ、検索エンジンで直に来られた場合に困る。
そのまましばらく放置すると検索エンジンも新しいURLを認識するようになるが、それまでの間困る。
URLを投稿時に毎回自分で決める場合は問題ないだろうが、面倒なので自動で付けたい。
それは %postname% であるが、自分で決めるのは面倒杉流至、自動で付く場合でもタイトルを元にするので、2バイト文字が入ったりして気に入らない。
投稿IDである %post_id% を使うのが、見た目でスッキリするので好ましい。
# 最新のSEO的にどうかは知らん。
WordPressの設定画面にパーマリンク設定があるが、旧サイトではその都度決めたURL、それをWordPressに移行し、新たに記事を追加する場合、移入記事と新規記事のURLの扱いが異なって問題になる。
移入記事に対してはパーマリンク設定で「カスタム構造」を選択すると投稿毎に独自のURLが指定できるが、それ以後の投稿で自動で付けたい場合、「カスタム構造」では自動にならない(自動であっても2バイト文字とか以下略)。
と書きながら、旧記事に対してはカスタム構造(独自設定)とし、新記事に対しては%post_id%を使ったカスタム構造で問題なく投稿できていた(共存)のであるが、誤って変えてしまったのかヴァグなのか、共存できなくなってしまった。
旧記事を優先して新記事のURLを全て指定し直すのは面倒杉手無理だし、新記事を優先すると旧記事が「見つかりません」となる。
DBを眺めてコティアコティアしようかと思ったが、%post_id%を使ったカスタム構造とし(新記事優先)、旧記事に対しては.htaccessでRedirect permanentを使って飛ばすことにした。
そのためには旧記事の独自設定(旧URL)とpost_id(新URL)の関係をDBから引っ張る必要があったけど。
旧URLの一覧は移行前のファイル群から探し出したので、それを元にSELECT文で相方をヒッパリ出す。
ソシて
Redirect permanent /old.html /1.html
Redirect permanent /furui.html /2.html
Redirect permanent /masuzoe.html /3.html
と.htaccessに列記して作業終了。
.htaccessには、WordPressが記述した
# BEGIN WordPress
~
# END WordPress
という内容があるので、Redirectはその前(上)に書く。
コレで、新投稿は投稿ID(%post_id%)を用いて自動付加で、旧記事に対してはリダイレクトで新投稿と同じ構造のURLに飛ばし、「見つかりません」を回避できる。
Redirect permanentは301(永遠移転)なので、ジキに検索エンジンも自動付加型のURLを示すようになろう。
そうなっても、Redirect設定はそのままで問題ない。
個人サイトに記された旧URLからのリンクもあるだろうし。
関連:[WordPress] データベースの使用容量を下げる方法 [Better Delete Revision]
関連:[WordPress] 特定のカテゴリーの記事をトップページに表示させないが、そのカテゴリーの一覧では表示させる方法
翔泳社
売り上げランキング: 1,733
翔泳社
売り上げランキング: 34,795