プラグインを使わずにドメイン変更を伴うサーバー移行を行う場合、Search Replace DBを使うとデータベース内のドメインを一括で書き換えられて便利です。
Webデザイナー、Webエンジニア、その他Web制作に慣れている方向けに、Search Replace DBのダウンロード方法、Search Replace DBの使い方、ドメインを一括置換する手順についてご紹介いたします。
使用後は必ずサーバーから削除する必要があります。そうしなければ、セキュリティホールとなります。
Search Replace DBの活用やデータベース内のデータの一括置換に関して、注意点やリスクがあるため、よくわからない方や不安な方は無理に行わないことをおすすめします。
ドメイン変更やサーバー移行はプロに委託することをご検討ください。
Search Replace DBをダウンロードする
以下のページの「Download Search Replace DB」よりダウンロードします。
Database Search and Replace Script in PHP
セキュリティリスクなどについての注意書きがあるため、ページに記載の内容をよくご確認ください。
問題なければ、チェックボックスにチェックを入れて、お名前、メールアドレスを記入し「SUBMIT」をクリックします。
すると、記入したメールアドレスにダウンロードリンクのメールが届きます。
そこからSearch Replace DBをダウンロードし、zipフォルダを解凍しておきます。
Search Replace DBをサーバーにアップロードする
サーバーに接続し、WordPress関連ファイルをダウンロードしてある階層(wp-config.phpファイルがあるところ)に、解凍した「Search-Replace-DB-master」をフォルダごとアップロードします。
一時的とはいえ、「Search-Replace-DB-master」という名称のままサーバーにアップロードすると、セキュリティリスクもあるため、適当に別のフォルダ名に変更してからアップロードしましょう。
ここでは例として、「sample」というフォルダ名に変更してからサーバーにアップします。
Search Replace DBの操作を行えるページにアクセスする
「sample(旧Search-Replace-DB-master)」フォルダのアップロードが完了したら、ブラウザの新規タブを開き、Search Replace DBの操作を行えるページにアクセスします。
例えば、sample.comというドメインで、WordPressを「wp」というディレクトリにインストールしていた場合は、
がSearch Replace DBの操作を行えるページとなります。
Search Replace DBを使ってドメインを一括置換する
「replace」の右の入力欄に「移行元のURL」、「with」の右の入力欄に「移行先のURL」を入力します。
Search Replace DBの使い方について検索すると、URLではなくドメイン名だけ入れればOKという旨の説明もあるのですが、それはサイトや状況によりけりかと思います。
私は今回、コーポレートサイトのサブディレクトリ(イメージ:https://examplexxxxxx-aaa.com/blog/)で更新していたサイトを、https://examplexxxxxx-bbb.com/へ移行する作業を行っています。
この場合、replace https://examplexxxxxx-aaa.com/blog/
with https://examplexxxxxx-bbb.com/
と入力して「live run」をクリックし一括置換ツールを走らせます。
ドメイン(URL)の一括置換が完了してからサイトの表示や動作を確認したところ、下層ページがInternal Server Errorになっていました。
よく確認したところ、.htaccessファイルに問題がありました。
.htaccessファイル内に以下の記述がなかったため、ファイル内の上の方に追記したところ、下層ページが表示されるようになりました。
# 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
セキュリティ対策プラグインで、WordPress管理画面のログインURLを変更していた場合、ドメイン変更後なぜかアクセスできないことがあります。
その場合は、FTPソフトでサーバーに接続し、wp-content/pluginsの中のセキュリティプラグインのディレクトリ名を適当に変更して(先頭にアンダースコアをつけるなど)、一時的にセキュリティプラグインを無効化します。
そうすると、通常のwp-login.phpでログイン画面にアクセスできます。
WordPressにログインして、セキュリティプラグインのディレクトリ名を元に戻し、セキュリティプラグインを有効化して、ログインURLを再設定しましょう。
以上で、サイトが正常に表示・動作するようになりました。
ドメイン変更後は、301リダイレクト設定も忘れずにご確認、ご対応ください。
【重要】Search Replace DBを削除する
一括置換が完了したら、サーバーからSearch Replace DBを削除します。
Search Replace DBの操作を行えるページの下の方にある「delete me」ボタンをクリックすると、サーバーから一式削除されます。
削除しないと、不正にアクセスされてデータベースを書き換えられサイトを改ざんされるなどのリスクがあります。
まとめ
便利なツールですが、一歩間違えるとリスクも高いため、活用に際しては十分ご注意ください。
特に、使用後には必ずサーバーからSearch Replace DB関連ファイル一式を削除するようお願いいたします。
WordPressサイトのサーバー移行に関しては、以下の記事をご参照ください。