WordPressサイトのドメインを変更し、ファイルなども新しいドメイン直下のフォルダに移管したい場合があります。
ただ、データベースは既存のものをそのまま使いたい(新たに生成しない)という場合の移管方法を解説しています。
※ファイルを移動せずに、ドメインだけ変更するのであれば、WordPressの設定で対応可能です。
Duplicatorで移管する
WordPressサイトの移管にはDuplicatorというプラグインを使用します。
一番のポイントとなるのは、データベースを移管するActionで「Backup Existing Tables」を選択することです。

これを選択することで、指定したデータベースの中にテーブルが存在する場合は、それらをプレフィックスをつけて違うテーブルにします。
そして、新しい条件でテーブルを新規作成します。
Duplicatorの具体的な使い方は下記をご参考ください。
リダイレクトの設定
移管が完了し新しいサイトの管理画面にアクセスできること、および、ページが正しく表示されることを確認したら、SEO評価の引継ぎの為、旧ドメインから新規ドメインの各ページ毎にリダイレクトの設定をします。
旧サイトの.htaccessの上部に以下のコードを追記します。
RewriteEngine On
# www付きも含めてリダイレクト
RewriteCond %{HTTP_HOST} ^(www\.)?old-domain\.com$ [NC]
RewriteRule ^(.*)$ https://new-domain/$1 [R=301,L]
あとは、旧ドメインにアクセスして正しく転送されるか確認します。
SEOの評価引継ぎが完了するまで、最低でも1年、可能であれば恒久的にというのが一般論です。
とはいえ、旧ドメインはいずれ解約することになると思います。ドメインを解約すると転送処理は効かなくなります。なので、その場合は半年間ほどの転送処理が望ましいかと思います。
不要なデータベースのテーブルを削除する
Duplicatorで、データベースを移管するActionで「Backup Existing Tables」を選択したことにより、旧テーブルがリネームされて残ります。
元々存在していたテーブルは「db___bk_」というプレフィックスがつけられて、新たに作成された「db」というディレクトリの中に入ります。

これらのテーブルは不要なので、全て削除します。
phpMyAdminにログインし、対象のデータベースを選択した後に、「構造」のフィルタで「dp_」と入力します。

これで、dp_が入っているテーブルのみが表示されるので、下の方にある「すべてチェックする」にチェックを入れ、「削除」を選択し、実行します。

「すべてチェックする」をクリックする前に、対象外のテーブルが含まれていないか確認してください。
削除が完了すると、テーブルおよびそれらが入っていた「dp」のディレクトリもなくなります。
以上で、移管は完了です。


