LoginSignup
68
63

More than 5 years have passed since last update.

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

Last updated at Posted at 2014-08-29

概要

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]

68
63
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
68
63