ドメイン&WordPressを含むサイトの引越しでの、URL変更作業:『DATABASE SEARCH AND REPLACE SCRIPT IN PHP』を使って
最近サーバー移転をして、その時々に起こった問題や注意点を記事にしてましたが(301リダイレクトの記述方法、URLの正規化など)、終わったと思っても次から次へと問題というか、やらなきゃいけないこと(いけなかったこと)がでてきます。
以前『サーバー移転の手順 1, 2, 3』と書いたのですが、その時はドメインの変更はしない引っ越しでしたので少し手順は簡単でした。が、今回はドメイン変更も、そしてWordPressの移転も伴っているので、いちいち旧URLから新URLに置き換えないといけません。全部置き換えれた!と思ってもまた気がつけば見つかる。。といった感じですので、ドメイン&WordPressを含むサイトの引越しでしなければいけない、URL変更の場所、方法等を記載していきます。
URL変更の場所
被リンクの変更や、Twitter等、SNSにリンクさせてる場合は、それぞれたくさんしないといけないと思いますが『引越しするサイト』の中身は、基本的には以下の2箇所で良いと思います。
- バックアップしたデータファイル
- データベース(phpMyAdmin)内のデータファイル
この2箇所は『301リダイレクトの記述方法』の手順3と5の前に行います。
バックアップしたデータ(ファイル)のURL変更
手順3の『FTPソフト等で、バックアップしたデータ(ファイル)を移行(コピー)します。』の前には、FTPソフト等で 旧URLから新URLに置き換えておきます。
この作業をしていなかったので、引っ越し後にリンクエラーの通知がちょくちょくきて気がついたのですが、まずはこれ、基本ですよね。完全に忘れていました。。必ずやってくださいね。
phpMyAdminでのURL変更
次に、手順5の『phpMyAdminにもバックアップしたデータ(データベース)の移行(import)をします。』で、phpMyAdminから引っ越したデータベースを選択して、以下のような記述でクリエを実行しました。(次に記載する方法でまとめてできますので必須ではないです。)
UPDATE wp_options SET option_value = replace(option_value, 'http://OLD.jp/', 'http://NEW.com/') WHERE option_name = 'home' OR option_name = 'siteurl'; UPDATE wp_posts SET guid = replace(guid, 'http://OLD.jp/','http://NEW.com/'); UPDATE wp_posts SET post_content = replace(post_content, 'http://OLD.jp/', 'http://NEW.com/'); UPDATE wp_postmeta SET meta_value = replace(meta_value,'http://OLD.jp/','http://NEW.com/');
これで一応エラーなく上手く稼働しているものですが(トラブルがまだでてないだけかも?)、検索してみるとまだ数千個の旧URLが残っています。
ですのでこちらの『DATABASE SEARCH AND REPLACE SCRIPT IN PHP』のスクリプトを使った方法をご紹介します。
『DATABASE SEARCH AND REPLACE SCRIPT IN PHP』を使ったURLの変更方法
MySQLのドメインの書き換えは、phpMyAdminから一括で変更可能なようですが、この方法では移転先WordPressで不具合(ウィジェットが表示されない等)が生じるようです。ですが、この『DATABASE SEARCH AND REPLACE SCRIPT IN PHP』を使えばそのような問題が起こることなく簡単に変更できるようですので、その方法を以下に記載していきます。
- まずは『DATABASE SEARCH AND REPLACE SCRIPT IN PHP』をダウンロードします。(Versionは 2 でも 3 でも大丈夫でしたが、動く方をDLしてください。)
- フォルダをリネイムします。(セキュリティのためのようです。)
- FTPソフト等で、以下のフォルダがある同階層にアップロードします。
(root directoryには置いてはいけないようです。また、階層を間違えるとエラーで動きません。)
/your-secret-search-replace-folder
/wp-admin
/wp-content
/wp-includes
ちなみに、階層を間違えておくと、以下のようなメッセージが現れます。The script encountered an error while running an AJAX request.
If you are using your hosts file to map a domain try browsing via the IP address directly. If you are still running into problems we recommend trying the CLI script bundled with this package. See the README for details. - ブラウザで『http://newアドレス/URL-henkou(リネイムした任意の名前)/』にアクセスします。
- 置き替えたいOldドメイン→Newドメイン(http://はなし)を入力します。
- actionの『live run』を押します。
(ちなみに『dry run』はお試しのようなもので実際には変更されません。ですので書き換え後の確認等に使用することもできます。) - 無事置き換わっていたら、あとはこのスクリプトを削除します。
以上で終了です!無事終了すると、このようなメッセージが現れます。
なんと親切なスクリプトなんでしょうね。これを最初から知っていれば、最初のクリエを実行することもなく、簡単に置き換えれいたのに。。
ま、これも勉強!ということで、また一つ賢くなりました。
Google AdS
関連記事
-
Google AdSenseの広告をWordPressの投稿内に記述する方法
以前Google AdSenseの広告を自動で設定してたのですが、ある時スマホで管理サイトを見た時、やたら記事を読むのを…
-
WPでin_categoryが効かない!サイドバーが出てこない!原因と対処(解決)方法
管理しているサイトでカテゴリー単位で色々「in_category」で分岐してサイドバーの出し分けをしていたのですが、ある…
-
OGPをWP-OGPのプラグインを改変して設定する!!2015年のOGP最新設定
今度こそ。。。OGPの設定で何時間、というより何日?何ヶ月?かかってるんや。。。という感じなのですが、もう最初の投稿から…
-
共通パーツ(header,footer等)をjQueryで読み込んで編集を楽にする方法 & 文字化け対策
WordPress等のCMSではなく、htmlで構築され、headerやfooter等、同じパーツを使っているサイトを編…
-
z-index が効かない時の対処方法
z-index が効かない時がちょくちょくあります。でも、仕事でそういう場合に遭遇すると、その場しのぎで対処法を見つけて…