WordPress のドメインをアクセスロス無しで簡単に変更する方法

WordPress サイトにおいて、ドメインの変更は通常の Web サイトよりも非常に簡単に、かつアクセスのロスを極力抑えて行う事が出来ます。

今回はその方法の説明と、少しだけ WordPress の仕組みについてご説明したいと思います。WordPress のドメイン変更を検討されている方は是非読んでみて下さい。

WordPress の 『引っ越し』 とその 『種類』 について

WordPress サイトのドメインを変更する、という事は、WordPress サイトを『お引越し』させるという事と同義です。住所(ドメイン)が変わりますからね。

ただ、『お引越し』にも色々と種類があり、難易度や方法が異なってきます。これからお話する内容を理解し易くする一助として、簡単にお引越しの種類を整理してみたいと思います。

  1. ドメインだけ変更する
  2. サーバーだけ変更する
  3. サーバーは変更しないが、ディレクトリを変更する
  4. ドメインもサーバーも変更する

今回はパターン 1 に相当する内容で、作業は非常に簡単です。

パターン 4 になると非常に面倒で、何度か経験しましたができるだけやりたくない作業ですね…。お引越しの種類はもっと細分化出来ますが、大雑把に分けるとこんな感じです。いずれは別のパターンも記事に出来たらと思っています。

WordPress サイトのドメインを変更する作業手順

それでは、ここからは実際に WordPress サイトのドメインを変更する手順を説明します。
尚、新しく利用するドメインはすでに取得済みという前提でお話させて頂きます。


また、ここから先の作業を行う際、既存の WordPress 環境は消さないで必ず保持して下さい。現在の環境を消去する必要はありません。

データベースをファイルのバックアップを取得

これは全ての基本ですが、何かしら作業をする前は必ずバックアップを取りましょう。

作業内容は以下の通りです。

  • サーバーにアップロードしてある全てのファイルのダウンロード
  • phpMyAdmin などを利用して MySQL データベースを保存

WordPress はファイルと MySQL データベースを保存しておけば、万が一失敗しても即座に環境を復元出来ます。

新ドメインのネームサーバーの書き換え

引越し先のドメインのネームサーバー情報などは、実際に作業する前に利用するサーバーのものに書き換えておきましょう。ネームサーバーの変更は反映までに時間がかかるので、先に行っておくと作業がスムーズに進みます。

ドメインに関するその他の設定やサーバー設定などもあれば、この段階で行っておくと良いでしょう。

データベースを書き換える

phpMyAdmin にログインして、WordPress の MySQL データベースを書き換えます。
例えば、”oldsaite.com” というドメインから “newsite.com” というドメインに変更する場合、”http://” や末尾の “/” などを入れずにドメイン名だけを置換するのがポイントです。


“http://oldsite.com/” から “http://newsite.com/” へ変更する場合、”oldsite.com” と “newsite.com” のみを検索置換する。

phpMyAdmin の SQL メニューから、以下のコードを実行する事で書き換えが始まります。ここでトラブルが起きても、先ほどバックアップしたデータベースファイルがあれば環境を復元する事が出来ますので、安心して、けれど間違いの無いように実行して下さい。

1
2
3
4
UPDATE wp_options SET option_value=REPLACE(option_value,"oldsite.com","newsite.com");
UPDATE wp_posts SET post_content=REPLACE(post_content,"oldsite.com","newsite.com");
UPDATE wp_posts SET guid=REPLACE(guid,"oldsite.com","newsite.com");
UPDATE wp_postmeta SET meta_value=REPLACE(meta_value,"oldsite.com","newsite.com");

“oldsite.com” と “newsite.com” の部分をご自身の内容に合わせて書き換えて下さい。

データベースが無事に書き換わったら終了

MySQL の書き換えが終わって、新ドメインのネームサーバー変更も完了していれば、この時点で新しいドメインで WordPress サイトが表示されます。

最後にリダイレクト設定を行って終了です。

WordPress サイトに 301 リダイレクトをかける

ここまでの作業で、ドメインの変更は完了しています。
が、このままでは旧ドメインにアクセスがあった場合、そのアクセスはロスしてしまいます。また、Google などの検索エンジンのドメインに対する評価も引き継ぐ事が出来ないなど、色々と問題が生じてきます。

そこで、旧ドメインから新ドメインに 301 リダイレクトを設定します。

『301 リダイレクト』に関しての技術的な話は別の機会にご説明したいと思うので、今回は端折ります。
要は、旧ドメインへのアクセスを自動的に新ドメインへ転送するという、世にも素晴らしい設定の事だと思って頂いて差し支えありません。

“.htaccess” に 301 Redirect を記述する

WordPress のルートディレクトリにある “.htaccess” というファイルを開いて作業します。ファイルはテキストエディタで開く事が出来ます。

“.htaccess” に記述してある内容はサーバーの環境や利用している WordPress プラグインによって異なりますが、# BEGIN WordPress という一文を見つけて、その前に以下のコードを追記して下さい。

URL に “www” を付ける場合とそうでない場合で少々コードが異なります。

1
2
RewriteCond %{HTTP_HOST} ^(oldsite\.com)(:80)? [NC]
RewriteRule ^(.*) http://newsite.com/$1 [R=301,L]

“www” 無しの場合

1
2
RewriteCond %{HTTP_HOST} ^(www\.oldsite\.com)(:80)? [NC]
RewriteRule ^(.*) http://www.newsite.com/$1 [R=301,L]

“www” 有りの場合

追記が終わったら、ファイルを保存してアップロードし直せば作業は完了です。旧ドメインにアクセスして、新ドメインへ転送されるかチェックしてみましょう。

上手く設定出来ていれば、個別の記事に関しても全て旧 → 新へ転送がかかります。

まとめ

以上で作業は完了です。お疲れ様でした。

WordPress はデータベースに全ての設定やコンテンツが保存されているので、データベースを書き換える事で大規模な変更や置換作業が簡単に行う事が出来るので非常に便利ですね。
また、バックアップも管理しやすく有難いです。

この方法は、新しくサイトを作成する際などにも、一旦非公開ドメインでサイトを作成して全てチェックしてから、本番ドメインへそのまま移行する…といった使い方が出来るので、利用するシーンは少なくないかと思います。

WordPress のドメインをアクセスロス無しで簡単に変更する方法 is a post from: Room 402