WordPressでドメインをWordPressデータベース用検索と置換スクリプトを使用して変更する手順

laptop-731904_1920

私の愛しいアップルパイへ

WordPressを使っていてURLのドメインを別ドメインに変えたいときはないでしょうか。たとえば以下のURLの場合であれば「jmatsuzaki.com」の部分です。

http://jmatsuzaki.com/archives/1724

今日紹介するのは、たとえばこれを以下のように変えたい場合の手順です。

http://jmatsuzaki-super.com/archives/1724

ちなみに、その後の「archives/1724」の部分はパーマリンクと呼ばれ、ドメインとは意味が異なります。今回はパーマリンクの変更には触れませんのでご了承ください。

それではWordPressでのドメイン変更手順をここに記載しておきます。

WordPressでドメインを変更するまでの流れ

全体の流れとしては以下のようになります。

  • ドメインの取得とDNSの設定
  • データベースバックアップ
  • 「WordPressデータベース用検索と置換スクリプト」でドメインを書き換え
  • .htaccessに301転送の記述を追加
  • 外部サイトに登録してあるURLを修正

それでは1つ1つ説明しましょう。

WordPressでドメインを変更する手順

ドメインの取得とDNSの設定

まずは新しいドメインを取得して、使えるようにしましょう。これはお使いのドメインによって手順が違いますし、WordPressの設定は不要なので詳細な手順は割愛します。

データベースバックアップ

ドメインの変更ではデータベースを書き換えます。サーバー側の機能か、WordPressの機能で必ず事前にバックアップを取得しておきましょう。

「WordPressデータベース用検索と置換スクリプト」でドメインを書き換え

さて、ここからが本番です。WordPressのデータはMySQLというデータベースに格納されています。このデータベース内の古いドメインの記述を新しいドメイン名で置換すれば良いのですが、単純に文字列置換しようとしてもうまくいかないのでご注意ください。

データベース内にはドメイン名に関するメタデータなどが含まれているので、それらと整合性を保ったままドメイン名を書き換えるには、専用のスクリプトを使用する必要があります。

この点については以下のWordPress公式オンラインマニュアルでもあるWordPress Codexでも言及されています。

そこで使うのがWordPressデータベース用検索と置換スクリプト」です。これは上記で公式に推奨されている方法です。具体的なやり方を見ていきます。

▼まず「WordPressデータベース用検索と置換スクリプト」をダウンロードするために、以下のURLにアクセスします。

画面下部にダウンロードボタンがあるので、ここから「WordPressデータベース用検索と置換スクリプト」をダウンロードします。

ScreenClip

ちなみに、赤いボタンが2つあるのは、最新版でうまくいかなかったときに使う旧バージョンの安定版へのリンクです。もしこの後の手順でエラーなどが出る場合は下のボタンから旧バージョンを使ってみてください。

▼ダウンロードが終わったらzipファイルを解凍します。そして、解凍してできたフォルダ名を推測できない文字列に変えてください。これはセキュリティリスクを減らすためです。

ScreenClip [1]

▼ドメイン名を変えたいサイトにFTPで接続して、WordPressのルートディレクトリにフォルダごとアップロードします。以下の場所にフォルダができればOKです。

ScreenClip [2]

アップロードしたフォルダ(http://ドメイン名/フォルダ名)にアクセスし、以下のようなページが開くことを確認してください。

ScreenClip [3]

replace」の欄に古いドメイン名、withの欄に新しいドメイン名を入力します。頭にhttp://は不要です。また、まつびの/(スラッシュ)も不要です。

ScreenClip [4]

▼database接続情報はwp-config.phpの内容をもとに自動で入力されているはずです。一応間違いないか確認してください。

ScreenClip [4b]

dry run」ボタンをクリックしてください。これはテストです。仮実行して、実行結果に問題ないかを事前に確認できます。実行結果に表示される「view changes」をクリックすれば、置換内容が確認できます。

ScreenClip [5]

▼問題なさそうでしたら、今度は右隣のlive run」ボタンをクリックします。

ScreenClip [5b]

▼アラートが表示されるので、OK」をクリックすると処理が本当に実行されます。

ScreenClip [6]

▼処理結果が随時表示されます。あとは処理が終わるまで待つだけです。

ScreenClip [7]

▼処理が終わったらdelete me」ボタンをクリックして「WordPressデータベース用検索と置換スクリプト」をフォルダごと削除します。そのままにしておくとセキュリティホールになりますので、忘れずに削除してください。

ScreenClip [8]

削除が終わったら念のためアップロードしたフォルダ(http://ドメイン名/フォルダ名)にアクセスし、削除されていることを確認しましょう。

これでドメイン名の書き換えが完了しました。この時点で新しいドメイン名でサイトにアクセスできるようになっているはずです。

.htaccessに301転送の記述を追加

ドメインを変更したら、旧ドメインにアクセスした人を新しいドメインへ301転送します。また、301転送であれば旧ドメインに対する検索エンジンの評価を新しいドメインへ引き継げるので必ず設定しましょう。

301転送は.htaccessで設定します。

▼先ほどフォルダをアップロードしたのと同じ場所にある「.htaccess」ファイルをダウンロードしてきます。

ScreenClip [2]

▼.htaccessを開き、「# BEGIN WordPress」という行の前に以下のような301転送の記述(ハイライト部分)を追加します。

### ドメイン変更時追記 ###
# ▼旧ドメインを転送。.の前には\が必要。[OR]で次の行にOR条件を記載できる。[NC]は大文字と小文字を区別しない指定
RewriteCond %{HTTP_HOST} ^(jmatsuzaki\.com)(:80)? [OR,NC]
# ▼wwwつきの新ドメインもあわせて転送。
RewriteCond %{HTTP_HOST} ^(www\.jmatsuzaki\.com)(:80)? [NC]
# ▼新ドメインへの301
RewriteRule ^(.*) http://jmatsuzaki-super.com/$1 [R=301,L]
### 追記部分 終わり ###

# 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

編集が終わったら.htaccessを上書きしてください。そして旧ドメインから新ドメインへリダイレクトされるか確認してみましょう。これで内部的な設定は完了です。

外部サイトに登録してあるURLを修正

あとは外部サイトに登録してあるURLを忘れずに修正しておきましょう。

主に以下のサイトで設定が変更になるでしょう。

  • TwitterやFacebookなどのSNSに登録したURL
  • Google AnalyticsやGoogle Search Consoleなどの管理サイトに登録したURL
  • アフィリエイトサイトに登録したURL

以上で作業は完了となります。

貴下の従順なる下僕 松崎より

著者画像

システム系の専門学校を卒業後、システム屋として6年半の会社員生活を経て独立。ブログ「jMatsuzaki」を通して、小学生のころからの夢であった音楽家へ至るまでの全プロセスを公開することで、のっぴきならない現実を乗り越えて、諦めきれない夢に向かう生き方を伝えている。