WordPressマルチサイトをサブドメインからサブディレクトリに変更する

WordPressでサブドメイン型として運用していたサブブログをサブディレクトリ型に変更した記録です。

WordPressマルチサイトをサブドメインからサブディレクトリに変更する

WordPressのマルチサイト機能でサブブログを作ってみたんですけど、管理上の問題が起きたのでサブドメイン型からサブディレクトリ型に移行することにしました。

WordPressを使ってサイト運用してる人でもマルチサイト機能を利用してる人はごく少数派の上に途中でURL変えるとか完全に終わってるんですけど、やっちゃったもんはしょうがないということで経緯をメモしておきます。

作業手順まとめ

WordPressでマルチサイト化するところから書くと話が複雑になるので、移行作業のみ書きます。

既にサブブログ運営をしたことがある方ならご理解頂けると思います。

  • バックアップを取る
  • プラグインを全て無効化する
  • wp-config.phpのマルチサイト設定を書き換える
  • .htaccessのリダイレクト処理を書き換える
  • サイト情報に関するデータテーブルをチェック
  • データベースの再構築

特に断りがない限り、作業環境はWordPress ver4.4.2です。

データベース変更前にやるべきこと

作業前の下準備です。

バックアップを取る

サイトを大々的に変更するので、何はなくともバックアップを取ります。

  • データベースのバックアップ
  • wp-config.phpのバックアップ
  • .htaccessのバックアップ

データベースのコピーはもちろん、wp-config.php や .htaccess も忘れずにコピーを取っておきましょう。

プラグインを全て無効化する

利用中のプラグインを一度全て無効化しておきます。

プラグイン無効化の是非について言うと、実は手元に正しく設定した設定ファイルがあればいきなり切り替えちゃっても特に問題なかったりします。

ただ常駐タイプのプラグインを使ってる場合、いつどういうリクエストが来るか判らないので無茶はしない方が良いでしょう。

プラグインの数を数個に絞ってる人と30も50も入れてる人ではいろいろ環境が違うでしょうし。

サブブログの型を変更する

WordPressのマルチサイトはサブドメイン型とサブディレクトリ型があります。

  • サブドメイン型   … 例)http://sub.example.com/
  • サブディレクトリ型 … 例)http://www.example.com/sub/

今回、サブドメイン型だったものをサブディレクトリ型に変更しました。

wp-config.phpを書き換える

ルートディレクトリに置かれた wp-config.php のうち、マルチサイトに関する設定 ‘SUBDOMAIN_INSTALL’ を探してサブディレクトリタイプに書き換えます。

【wp-config.php】
define('SUBDOMAIN_INSTALL', false);

  • サブドメイン型   … true
  • サブディレクトリ型 … false

.htaccessを書き換える

wp-config.php をサブディレクトリ型に変更したら、.htaccess のリダイレクト設定を変更します。

ダッシュボードの「ネットワークの設置」項に.htaccess のリダイレクト設定が表示されるのでコピーして書き換えてください。マルチサイト化したときも同様の作業をしたと思いますが、それを別のタイプに書き換えます。

参加サイト > サイトネットワーク管理者 > 設定 > ネットワークの設置

サイト情報に関するデータテーブルをチェック

WordPress全体の設定を変更したら、それぞれのサブブログが正しく設定されているかを確認します。

具体的にはサブブログのURLをサブドメインからサブディレクトリに書き換えます。

参加サイト > サイトネットワーク管理者 > サイト

サイト情報を編集

サイトを編集:サブブログ名 > 情報

ダッシュボードの「サイト」項からサブブログの設定に入ったら、「サイトURL」項のURL構造を書き換えます。

http://sub.example.com/ → http://www.example.com/sub/

サイトの設定を編集

サイトを編集:サブブログ名 > 設定

同じ「サイト」項の別タブである「設定」項に移り、「Siteurl」および「Home」項をサブディレクトリ型に書き換えます。

http://sub.example.com → http://www.example.com/sub

データベース変更後の仕上げ

総仕上げです。

  • データベースの再構築
  • メディアライブラリの点検
  • プラグインの有効化&バックアップを取る

データベースの再構築

いろいろ変更したのでデータベースの更新をします。

「ネットワークをアップグレード」ボタンを押す内部処理が行われます。この間、一部のメニューが使えなくなったり記事の更新が出来ないことがあります。

特にエラーが出てないようなら慌てずお茶でもしてて下さい。

参加サイト > サイトネットワーク管理者 > ネットワークをアップグレード

メディアライブラリの点検

サイト構造の変更で怖いのは画像などのパスが繋がらなくなることです。

今回メインブログはURL変更がないからいいとして、サブブログの方はURLが変わるのでメディアライブラリのデータ引き継ぎが一番の不安事項でした。

新しいブログではまだ数本しか記事を書いてないので、最悪手作業で移行するのも覚悟してたんですけど、結果的には何もしないで綺麗に引き継いでくれたので感動しました。

WordPress…やれば出来る子やで…。(´ω`*)

なお、サブディレクトリ型のサブブログを設置するとメインブログのURLに無条件で /blog/ がつく現象が知られてますが、今回私のところでは発生しませんでした。WordPressのバージョンアップで改正されたようです。

プラグインの有効化&バックアップを取る

外していたプラグインを元に戻します。ネットワークから有効化すれば一括で戻るのでそんなに大変ではないと思います。

プラグインの種類によってはマルチサイトに対応してないものもあります。エラーが出てないかあちこち巡回して確認しましょう。

改めてデータベースのバックアップを取って作業完了です。

おわりに

そんなわけでサブブログの型を途中で変更する方法でした。

一度は姉妹ブログをサブドメイン型で設置したおち研ですけど、テスト環境を経て本番環境に移行してみたらテスト環境と共存しなくなってしまいました。サブドメインごとに細かく設定を指示すると想定通りに動くんですが、今後何かあったときに訳が判らなくなりそうなのでドメインは揃えておきます。

見て下さるユーザにとってはURL以外まったく違いがないので二転三転したくなかったのですが、テストなしで本番環境のプログラムを書き換えられるほど凄腕プログラマじゃないのがアレですね…。(´・ω・`)

URI構造によるSEO的な優劣は正直よく判らないし、運用面での不安もあります。カテゴリ分けで対応していくことは最後まで考えたんですが、ブログ形式で多方面に話題を伸ばすとカテゴリごとの条件判定が曲芸並みになっちゃうんですよね。

「自分が書きたいこと」と「読む人に判りやすい構成」の折り合いを目指してるだけなんですけど、もはや何でWordPress使ってるのかよく判らない状態になってました。

とりあえず思いきってメインコンテンツと動線が全く被らない技術ネタだけ独立させてみた次第です。今後ともサグラダファミリア的おち研をよろしくお願い申し上げます。(・∀・)