ワードプレスで運営しているドメインAの契約が更新時期に近くなってきました。
このドメインAはあまり気に入っていなかったので、ドメイン名を変更して引き継ぐことにしました。
最終的にやったことは次のとおりです。
- ドメインAのサイトをバックアップする。
- ドメインBのサイトをドメインAのバックアップを使って復元する。
- ドメインAにアクセスした時にドメインBにアクセスするようにリダイレクト処理をする。
この記事はその時にやったことを忘れないようにまとめていきたいと思います。
ワードプレスサイトのドメイン移行した時にやったことまとめ(A→B)
今回作業した手順は、過去にサーバー移行した時の手順と途中まで同じになります。
手順がどこまで一緒なのか具体的に説明すると過去記事の「データベースのインポート」という項目までが、今回も一緒の手順になります。
引用して分かりやすくすると次の作業まで同じように進めます。
- 不要なテーマの削除
- リビジョンの削除
- 不要なプラグインの削除
- 問題につながりそうなプラグインの停止
- プラグイン「BackWPup」でワードプレスのデータをバックアップ
- 新サーバーでデーターベースを作成
- ワードプレスファイルのアップロード
- wp-config.phpの修正
- データベースのインポート
ということで、そこまでの手順は過去記事を参考にして行います。
今回はそれ以降で手順が変わっていく部分について記述していくことにします。
そして残りの作業としてやったことは次のとおりです。
- バックアップから復元したサイトに独自ドメインBを設定する
- 独自ドメインBにSSLの設定をする
- 独自ドメインBのサイトの動作確認
- サイト名の変更
- 内部リンクの置換
- リダイレクトの設定
- アクセス解析の再設定
- サーチコンソールの登録
- Fetch as Google
バックアップから復元したサイトに独自ドメインBを設定する
作業の最初に取得した独自ドメイン B を復元したサイトに設定します。
この工程では特に問題もなく作業することができた。
独自ドメインBにSSLの設定をする
ドメインAの時点でもSSL化していたので、ドメインBでもSSL化の設定を行いました。
独自ドメインBのサイトの動作確認
独自ドメイン B を設定した後の動作確認を行います。
確認するポイントは次のとおりです。
- 独自ドメイン B としてサイトの各ページが正常に表示されるか?
- WordPress にログインできるか?
- WordPress の管理画面やプラグインなどで問題が発生していないか?
独自ドメイン B としてサイトの各ページが正常に表示されるか?
私の場合確認したところ、トップページ以外のページを表示しようとすると旧ドメインに飛ばされる現象が発生しました。
原因を調べてみるとワードプレスの一般設定で「WordPressアドレス(URL)」と「サイトアドレス(URL)」が旧ドメインのURLになっていたからです。
この問題を解決する為に、管理画面にログインして設定を変更しようと思いましたが上手くいきませんでした。
記憶があいまいなのですがログイン画面も旧サイトに飛んでしまったからだと思います。
ということで「phpMyAdmin」からデータベースに直接アクセスして設定を変更することにしました。
phpMyAdminにログインしてワードプレスのデータベースを選択します。
「wp_options」テーブルを参照して値を修正する。(wp_の部分は人によって変わる場合があります。)
「option_name:siteurl」の「option_value」の値を「ドメインBのWordPressアドレス(URL)」に変更する。
「option_name:home」の「option_value」の値を「ドメインBのサイトアドレス(URL)」に変更する。
この設定をした後に各ページがドメインBとして表示されるようになりました。
WordPress にログインできるか?
前の手順で「WordPressアドレス(URL」と「サイトアドレス(URL)」を修正したところ正常にログインできるようになった。
WordPress の管理画面やプラグインなどで問題が発生していないか?
確認したらこんなことがありました。
プラグイン「EWWW Image Optimizer」のエラーが発生した。
→再インストール処理することで問題が解決しました。
その他にも停止していたプラグインを有効にしたり、全体的に問題がないか確認してみました。
サイト名の変更
私の場合はドメインの変更と同時にサイト名も変更したかったので新しいサイト名に変更しました。
サイト名の変更は一般的には変更する必要のない項目になるかと思います。
内部リンクの置換
プラグイン「Search Regex」を使って内部リンクの置換を行いました。
このプラグインを使うと指定したキーワードをデータベースから探し、別のキーワードに一括変換することができます。
リダイレクトの設定
ドメインAにアクセスがあった時に、ドメインBにリダイレクトしてくれるように設定します。
リダイレクト(転送)のやり方はプラグインを使う方法と「.htaccess」を使う方法があるけど、
今回は「.htaccess」を使うやり方にしました。
公開フォルダ直下(rootフォルダ)の「.htaccess」に次のコードをファイルの先頭に追加する。
「wordpress」がインストールされているディレクトリ内の「.htaccess」ではないので注意する。
このコードを追加することでドメインAにアクセス後、ドメインBに転送されるように設定することができました。
私の場合は、サイトの構成は全く一緒だったのでサイト全体を転送するように下のコードを追加しましたがディレクトリ構成が変わったり、一部のページのみリダイレクトしたい場合にも記述するコードが変わります。
その場合は、追加するコードを変更するかリダイレクト用のプラグインを使って設定すると良いでしょう。
追加するコード
# ドメイン変更によるリダイレクト処理 (START)
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*) https://newdomain.com(転送先ドメイン名)/$1 [R=301,L]
</IfModule>
# ドメイン変更によるリダイレクト処理 (E N D)
変更前のコード
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
変更後のコード
# ドメイン変更によるリダイレクト処理 (START)
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*) https://newdomain.com(転送先ドメイン名)/$1 [R=301,L]
</IfModule>
# ドメイン変更によるリダイレクト処理 (E N D)
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
アクセス解析の導入設定
新しいサイト(ドメインB)にアクセス解析を導入します。
データベース自体は旧ドメイン(ドメインA)サイトを復元したので、その時のアクセス解析コードが残っていましたが新たにアクセス解析したいので、解析コードを設定しました。
既存のサイトのコードを引き継いで使いたい場合は、元の設定のままで良いかもしれません。
しかし旧サイトも稼働している状態だと二重にアクセスカウントされる可能性もあるので注意が必要です。
サーチコンソールの登録
新しいドメインとしてドメインBを取得したので、ドメインBのサイトアドレスをサーチコンソールに登録します。
Fetch as Google
ここまでの設定ができたらGoogleなどの検索エンジンに早めに認識してもらえるように、サーチコンソールの機能「Fetch as Google」を使ってクロール依頼をリクエストしました。
終わりに
今回はドメインの移行作業についてまとめてみました。
この作業はサーバーの移行作業と一緒であまり経験することのない作業です。
結構前から疑問に思っていたりやったことなかったので実際に経験することができて良かったです。
他に気になる情報なんかあれば追記したいと思います。