WordPressのURL変更って難しいんです

「WordPressのURLを変更したいと思ってやってみたら、画面が真白になっちゃった」ってケース、けっこう耳にします。あるある系のトラブルなんですが、WordPressに慣れていない方であれば、これでいけるはずって考えた設定がけっこう通用しなかったりして、戸惑う場合も多いんじゃないんでしょうか。

理由はWordPressの仕様

WordPressはMySQL(データベース)にデータを保管して動作するウェブアプリケーションです。データベースの中には記事やユーザー情報だけではなく、もっと基本的な設定なんかも入っていて、公開URLなどもその一つになります。そこで不整合が起こると画面が真白になってしまったり、サイトの表示が崩れてしまったりといった事が起こるんですね。

WordPress新規インストールする時に、下記の初期設定画面にアクセスする必要がありますが、この時点でアクセスしたURLがそのまま公開URLとして使われてしまいます。

ここで保存されたURLと、WordPress、サーバ内の設定の整合性が合わない場合にトラブルが起きるわけなんですが、セオリーを知っていないと不具合の原因となるというわけです。

今回はシチュエーション別に、それぞれの設定例を紹介したいと思います。

  • さくらのレンタルサーバをご利用という前提で進めていきます。他のサーバをご利用の場合は適宜読み替えてご覧ください。
  • さくらインターネットの公式サポートではサポート対象外です。お問い合わせはご遠慮ください。
  • 設定状況やご利用のテーマ、プラグインによってはうまくいかない場合があります。必ずバックアップを取ってからお試しください。

サブディレクトリにインストールしたWordPressをドメイン直下に持ってきたい(http://example.com/wp → http://example.com/ のような場合)

サブディレクトリにインストールされたWordPressをドメイン直下で展開する場合、WordPressの管理画面だけで修正を行うとインストールディレクトリとの整合性が取れなくなり、エラーになってしまいます。

一回、サブディレクトリにインストールしてしまったWordPressを、http://example.com/wp → http://example.com/ のようにURLを修正し、ドメイン直下で展開させたい場合はWordPress公式のマニュアルに記載の方法を取る必要があります。

WordPressを専用ディレクトリに配置する

公式のサポートページは専門的過ぎて、初心者にはちょっと分かりにくいところがあるので、以下に簡略化した手順を紹介します。

設定方法(簡略版)

  1. WordPress管理画面で一般設定(WordPress管理画面ログイン後【設定】>【一般】)を開き、サイトのアドレス(URL)欄を http://ドメイン名/ に修正します。
    ※ この時点で一時的にエラーになりますが問題ありません。
    ※ ここでWordPressアドレス(URL)は変更しないでください。
  2. WordPressがインストールされたディレクトリにあるindex.phpを編集します。

    上図の赤枠内の記述に、サブディレクトリ名を含める形になります。

    修正前: require __DIR__ . '/wp-blog-header.php';
    修正後: require __DIR__ . '/wp/wp-blog-header.php';
    

    ※ WordPressのバージョンにより、多少記述に差がある場合があります。

  3. 最後に 上記の index.php をドメイン直下のディレクトリに移動、もしくはコピーして完了です。

 
これで、以下のようなURLでの運用になります。

  • 公開URL:http://example.com/
  • WordPress管理画面ログインURL:http://example.com/wp/wp-login.php

※ パーマリンク設定については、省略させていただきます。詳細は「WordPressを専用ディレクトリに配置する」をご確認ください。

全く別のドメイン名で運用したい(http://example.sakura.ne.jp/wp/ → http://example.com/ のような場合)

WordPressのURL変更自体は管理画面の一般設定(WordPress管理画面ログイン後【設定】>【一般】)で設定可能です。

ここの WordPressアドレス(URL)サイトアドレス(URL)を修正すれば基本的に反映されます。

しかし、インストールディレクトリとURLの整合性がちゃんと取れていないと、やっぱり不具合になってしまうので、事前に整合性があっているかどうかのチェックはどうしても必要になります。また、特にテーマの中には一般設定のURLを見ずに、自身でURLを格納するようなものがあるので、要注意です。

設定方法

ここでは、

  • さくらのレンタルサーバで http://example.sakura.ne.jp/wp (インストールディレクトリ:~/home/example/www/wp )にWordPressをインストール
  • このWordPressを http://example.com で公開する

という条件で設定を行ってみます。

  1. コントロールパネルのドメイン/SSLメニューより、example.comのWEB公開フォルダを ~/www/wp に変更
  2. WordPressの【設定】>【一般】でWordPressアドレス(URL)サイトアドレス(URL)を http://example.com/ に修正

URL変更に失敗して、WordPressの管理画面に入れない場合(トラブルシューティング)

WordPress公開URL変更の失敗は、大体WordPressの一般設定画面(WordPress管理画面ログイン後【設定】>【一般】)での設定ミスで起こります。多くは、WordPressのインストールディレクトリと実際のURLの不整合によるものとなりますが、失敗した、と思った時には時すでに遅し。WordPress管理画面ログインにも入れなくなってしまう事が多いです。

しかし、この設定はデータベースの決まったところに記録されているので、データベースを直接修正する事で復旧は可能です。特に、共有サーバでは、phpMyAdminなどのデータベース管理ツールが提供されている場合がほとんどなので、それを使えば比較的簡単に復旧作業も行う事ができると思います。

復旧方法(さくらのレンタルサーバの場合)

  1. まず、phpMyAdminにログインします。さくらのレンタルサーバの場合、コントロールパネルのデータベースから「phpMyAdminログイン」のボタンをクリックする事で、phpMyAdminログイン画面が出てきます。詳細はマニュアルをご覧ください。
  2. 左メニューからWordPressで使用しているデータベース名をクリックします。
  3. 右画面にテーブルの一覧が展開されますので、「(接頭文字)options」のテーブルの「表示」をクリックします。下の場合は接頭文字が「wp2bb5f4」になっているので、「wp2bb5f4options」のテーブルの「表示」をクリックします。

    ※ なお、接頭辞は、wp-config.php 内の以下の記述でもご確認いただけます。

    /**
    * WordPress データベーステーブルの接頭辞
    *
    * それぞれにユニーク (一意) な接頭辞を与えることで一つのデータベースに複数の WordPress を
    * インストールすることができます。半角英数字と下線のみを使用してください。
    */
    $table_prefix = '接頭辞';
    
  4. 「home」「siteurl」の「option_value」に入っているURLが現在、WordPressの一般設定画面で設定されているURLなので、これを変更前のものに修正します。修正は鉛筆マークをクリックする事で行う事ができます。

まとめ

上記に挙げたほかにも、Better Search Replaceなどのプラグインを利用する方法などもあるようです。
※ サーバ環境や、WordPressの設定によっては動作しないものもあるので、ご注意ください。

また、さくらのレンタルサーバでWordPressをクイックインストールした場合、WP-CLIが入っているため、こちらを利用する方法も可能です。

WordPressの設定変更は、毎回結構気を使いますが、仕組みを理解すればそこまで難しいものではありません。ただ、いろいろと設定をいじってしまって元に戻せなくなったというようなことが無いように、バックアップを取ってから挑戦してみてください。