63
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

WordPressでドメインやディレクトリ変更

概要

WPでディレクトリ構造を変更したりドメイン名を変更したりすると,DBも書き換える必要がある.

例)example.com → newdomain.com

WPの場合,DBのwp-optionsだけでなく,投稿内に挿入した画像URLにもフルパスが書き込まれる.
そのため,置換対象のドメイン名がDB内に大量に含まれる.

また,一部のプラグインではURLをシリアライズしている場合がある.
シリアライズされているデータは,単純に文字列置換をすると整合性が取れなくなり,パース時にエラーが出るようになってしまう.

これらの問題を解決し,簡単にドメイン名を変更できるツールを紹介する.

事前準備

  • 移転先に全ファイルを複製しておく.
  • DBをバックアップしておく.
  • DBも移転するなら,移転先にインポートしておく.
  • サイトを見ていた場合は閉じておく.

ツールダウンロード

以下にアクセス.
DATABASE SEARCH AND REPLACE SCRIPT IN PHP
v3.0.0 betaをダウンロードして解凍する.
betaではあるが,筆者が使用している限りは問題は見当たらない.

安定版はv2.1.0なので,こちらを使用しても良い.
v2.1.0の解説は以下のサイトなど
ウィジェットも対応。WordPressでサーバ移転時にデータベースのドメインを置換する方法

設置

移動先のディレクトリ(wp-congfig.phpを置いた階層)に,解凍したフォルダごと設置(アップロード)する.

使い方

ブラウザでツールにアクセスする

例)http://newdomain.co.jp/Search-Replace-DB-master/

search/replace

replace欄に旧アドレス,with欄に新アドレスを入力する.
「use regex」にチェックを入れると,正規表現も使用可能.

databese

同階層にwp-config.phpが見つかった場合はdatabase設定を自動で読み込んでくれる.
database欄が空欄の場合は,置換対象のDB設定を入力する.

tables

tables欄で「select tables」を選択すると,テーブルを限定して置換が行える.
複数選択は,Commandキー(WindowsはCtrlキー)やShiftキーを使用.

columns to exclude(空欄可)

この欄にカラム名を入れると,そのカラムを除外する.

columns to include only(空欄可)

この欄にカラム名を入れると,そのカラムのみを置換する.

置換欄記述方法

通常

例)
example.com → newdomain.co.jp (ドメイン変更)
example.com → www.example.com (www追加)
example.com → new.example.com (サブドメイン化)
dev.example.com → example.com (本番化)

replace
[dev.example.com]
with
[newdomain.co.jp]

上記のように入力すれば,ごっそり置換してくれる.

ディレクトリ変更あり or メールアドレスの設定は変更したくない場合

単純に置換してしまうと,以下のようになってしまう.

example.com → example.com/site
mail@example.commail@example.com/site

replace
[http://example.com]
with
[http://example.com/site]

上記のように,「http://」も入れれば良い.

  • サイト内で「https://」も使用している場合は,そちらも忘れずに.
  • ディレクトリ変更の場合は,.htaccessも書き換える必要があるので注意.

メールアドレスのドメイン部分のみ変更したい場合

replace
[@example.com]
with
[@mail.example.com]

上記のように,「@」も入れれば良い.

その他

ドメインだけでなく,どんな文字列でも置換できる.はず.

例)
Microsoft → microsoft
Apple Computer → Apple,Inc.

実行 : actions

dry run

実行して結果だけ表示.

live run(おすすめ)

置換中のファイルを表示しながら実行.

ツール削除

外部からDBのデータを書き換えられる状態になっているので,ツール自体を必ず削除する.
「delete me」ボタンを押すと自動で削除される.

「Could not delete the search replace script automatically.」
上記のようなエラーが出た場合は,サーバ上から手動で削除する.

置換後

置換後にサイトを開き,もしInternal Server Errorなどのエラーが出ていたら,
パーマリンク設定ページから「変更を保存」を押すと直る場合が多い
[newdomain.com/wp-admin/options-permalink.php]

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
63
Help us understand the problem. What are the problem?