ラムネグから一言:寝る前に読むとくだらなすぎて逆に寝れると好評なすごい適当なブログをこっちではじめてます.
ワードプレスで作ったサイトのドメイン(URL)を変更しながらお引越ししたい!けっこうニッチですがそんな作業が必要になる事もあると思います。例えばレンタルサーバー引っ越すついでにexample.comからblog.example.comのようなサブドメイン運用にしたいときとか、でしょうか。
ぼく自身もやってみるまで楽勝!楽勝!と調子乗ってましたが、いざやってみると意外なハードルの数々に頭がぼーっとするレベルで疲れてしまいました。
ここではワードプレスでドメインを変えるときのお引越し方法の注意点をまとめておきます。
SQLファイルの置換
まず普通に抜けてたのがSQLファイルをそのままインポートしちゃいけない、てコト。(今回はワードプレスプラグインbackwpupで作ったSQLファイルを使いました)
ドメイン変わるんでURLももちろん変わるんですよね。なんでSQLファイルをテキストエディタで開いてドメイン(URL)部分をぜんぶ置換しないといけません。
さっきの例だとexamle.comで検索してそれら全部をblog.example.comに変える。数万か所とかあるんで一括置換しちゃいましょう。「え…?SQLファイルて置換して大丈夫?そもそもテキストエディタで開いていいの?」と思いますよね。ぼくも思いました。ただSQLファイルの中身はクエリ(INSERTなど)がずらずら書かれているただのクエリを並べただけのもの。普通にテキストエディタで開いて編集しちゃってOK。
置換しないとどうなる?
ちなみにSQLファイルの置換をせずにそのままデータベースにインポートしちゃうと、新URLにアクセスすると旧URLにリダイレクトされちゃいます。
原因は置換しないとワードプレスの一般設定にある「WordPress アドレス (URL)」「サイトアドレス (URL)」の部分が旧URLのままになっちゃうため。ワードプレスとしては旧URLの方が正しいURLだと思っちゃうんですね。
ワードプレスの一般設定にある「WordPress アドレス (URL)」「サイトアドレス (URL)」などもデータベースに保存されている値なので、SQLファイルを置換すればインポート前にここらへんを一括で変更できます。
※ちなみに:ワードプレスはURLとか個人情報とか設定情報はすべてデータベースに保存しています。ファイルの方は唯一「wp-config.php」にあるSQLサーバー設定だけ。なのでなんか旧URLが表示されるなーというときはファイルを疑うんじゃなくてデータベースを疑うようにすると解決が早くなります。
301リダイレクトの罠
さっきの旧URLが表示される原因はこれもあります。
引っ越してことなんでレンタルサーバーも変わります。
だもんで旧レンタルサーバーのhttaccessで301リダイレクトするのが一般的。
ただ301リダイレクトってブラウザが覚えるんですよね。これが罠だった。
引っ越し途中てちゃんと見た目そのまんまかどうかとかを旧サイトと新サイトで見比べると思うんですが、この時にhttaccessやらphpやらで301リダイレクトが1回でもかかっちゃうとそれ以降サーバーではリダイレクトを外してもブラウザが勝手にリダイレクトしてしまう。
ブラウザのキャッシュをクリアしながら新旧サイトのチェックをやらないと、なんでリダイレクト設定してないのに旧URLにひっぱられるんだ~?と変な沼にハマることになります。
今頭がボーとしてるのはほぼほぼこの沼にはまっちゃったせいです。
ウィジェット情報がインポートされない
ワードプレスの設定はSQLサーバー設定以外すべてデータベースに保存されているのでした。
なので当然ウィジェットの配置やら中身やらもデータベースに保存されています。
でもドメイン変更してお引越しするとなぜかウィジェットだけインポートできない、という現象が起こります。すっごくナゾですよね。なんかコワい。モヤモヤする。
別に気にならなければウィジェットのエクスポートインポートができるプラグインもあるのでそれ使えばいいんですが、ここではウィジェットをインポートできない理由を。
ウィジェットももちろんデータベースに保存されています。
ただ、ウィジェットって位置も変えられるわ、なんなら削除もできるわでかなりぐちゃぐちゃの情報ですよね。
なのでいろんなパターンに対応できるように、シリアライズという方法でウィジェットの情報はデータベースに保存されています。
すごく詳しいサイトがあったんですが、URLが見つからず申し訳ないんですが、言葉を借りると、シリアライズっちゅうのは「1つ目の〇〇ウィジェットは10byteで中身はこんなの、2つ目の△△のウィジェットは20byteで中身はこんなの…みたいにサイズと実際のウィジェット情報が1組になってずらずらと保存される感じ。
んでこのサイズと実際の中身のbyte数が違うとエラーになってウィジェットが読み取れなくなる。
さっきSQLのURLを置換しましたよね。つまりウィジェットの中身の方のbyte数が旧URLと新URLの文字数分違っちゃってるんです。
なのでウィジェットはデータベースにちゃんと保存されているにもかかわらず、新環境では読み出しエラーになって表示されない、というわけ。
理由が分かればモヤモヤもすっきり。とりあえずプラグイン使ってぱぱっとインポートしちゃいましょう。
まとめ
ワードプレスのドメインお引越しについて注意点をまとめました。
SQLファイルを置換するとか301リダイレクトをブラウザが覚えちゃうとか、いろいろ落とし穴があって思ったより時間がかかってしまいました。
でも一度経験すれば次はスムーズにできるハズ!…次の機会がいつくるかわかりませんが、まあ参考にしてみてください。
【おしらせ、というか完全なる宣伝】
文体がもうぜんぜん適当すぎてあれだけどものすごい自由に書いてるブログ「檸檬だくだく」もよろしく.寝る前に読める恐ろしくくだらないやつです.
こんなにも一ミリも目を引かれないタイトルを取り扱ってます: ココア20g / ハイチュウとかってさ / なぜ米と小麦を食べようと思ったのかの謎 /