Edited at

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

More than 3 years have passed since last update.


概要

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]