なぜ複数ドメインを設置することになったのか
使用中のドメインを、新しいサーバーに途切れなく移行したい
使用中のドメインを新しいサーバーに移行する時、以下のことをします。
❶新しいサーバーに移行するドメインを登録
❷hostsファイルを設定し、移行するドメインでWordPressを設定する
しかしこの場合だと、
「hostsで設定している、私のパソコンでしかこのWordPressを閲覧することができない」ため、「お客様にご確認いただくには、ご確認用のWordPressをもう一つ設置する」二度手間が発生します。。。
そのため、一つのWordPressを「移行するドメイン」と「お客様のご確認用ドメイン」を設定したいと思いました。
それを探している時、この記事に出会いました!
WordPress に複数ドメインを設定する方法(マルチサイト不要!)
ここから下は、忘備録になります。
複数ドメインを設定してみて分かったこと。
wp-config.phpの設定
私はセキュリティ向上のためにWordPressのファイルを分けているので、その設定方法になります。
/**
* Flexible site URL
*
*/
$protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";
define('WP_HOME', $protocol . $_SERVER['HTTP_HOST'] );
//以下はこちらで追加、変更したもの
define('WP_SITEURL', WP_HOME . '/hogehoge' ); //[変更]wp-includesとwp-adminが入っている
define( 'WP_CONTENT_DIR', $_SERVER['DOCUMENT_ROOT'] . '/wp-contentのファイル名を変えたもの' );//[追加]wp-contentファイル名を変えたもの
define( 'WP_CONTENT_URL', WP_HOME . '/wp-contentのファイル名を変えたもの');//[追加]wp-contentファイル名を変えたもの
ドメインのディレクトリの階層は揃える
例えば、「〇〇.com」と「▲▲.jp/hoge」のように、ディレクトリの階層が違っているとうまく行きません。
ディレクトリの階層は合わせる必要があります。
例は以下の通り。
- 「〇〇.com」「▲▲.jp」とドメインだけ
- 「〇〇.com/hoge」「▲▲.jp/hoge」とディレクトリ名は揃える
お客様にはサイトの閲覧確認だけしてもらう
2つのドメインで管理画面にログインは出来ました。
テンプレートで「home_url()」のように関数経由で設定しているところは、閲覧しているドメインに変更されていました。
しかし、WordPressの管理画面で挿入した画像URLは絶対URLになっており、閲覧しているドメインは反映されていなかったです。
例えば、
「〇〇.com」で記事を作成した場合、画像URLは「〇〇.com」で始まるものになるので、
「▲▲.jp」でサイトを閲覧したときも、画像URLは「〇〇.com」で始まるもののままです。
もし、「お客様のご確認用ドメイン」で記事を作成した場合、このドメインが残ってしまうので、将来サイトの移管をする時に、うまく移管できない可能性があります。。
なので、「お客様のご確認用ドメイン」では、サイトの閲覧確認だけしてもらう方がいいと思います。
「お客様の方で、公開前にWordPressで更新したい」という場合は、二度手間ですが、テスト用のサイトを作成した方がよさそうですね🤔