Wordpressのサーバー移行時に、旧サーバーで管理画面だけ入れるようにする方法

Wordpressのサーバー移行時に、旧サーバーで管理画面だけ入れるようにする方法

Wordpressのサーバー移行時に、旧サーバーで管理画面だけ入れるようにする方法

WordPressのお引越し(ドメイン変更を含む)をした後、旧サーバーの管理画面にどうしても入る必要ができてしまいました。が、旧ドメインから新ドメインへのリダイレクトが設定済みだったので、旧サーバーにアクセスしても新サーバーにリダイレクトされて旧サーバーの管理画面に入れない状態に。。。回避方法を見つけたのでメモしておきます。

やりたいこと

  • ページの訪問者が、旧サーバーのページにアクセスした際は、新サーバーにリダイレクトする。
  • WordPressの管理者だけは、旧サーバーの管理画面にアクセスした際、新サーバーにリダイレクトせず管理画面を使用できるようにする。

対処方法

自身の検証より、Wordpressの管理画面に接続する際は、基本的に以下のパスが使用されることに気づきました。

https://old_domain.com/wp/xxx
https://old_domain.com/app/xxx

/wp/もしくは/app/で始まるパスが使用されるようなので、これらのパスにアクセスがあった場合はリダイレクトしないように設定を書き換えることで実現できました。

設定内容

リダイレクトの設定は様々な方法でできると思いますが、私の場合はnginx.confの設定でこれを行いました。

私の場合、移行元のサーバーではHeroku上でNginxをWebサーバーとして使用していたので、nginx.confこの辺)に以下を追記しました(Apacheをご利用の方は、.htaccessの変更が必要になると思います)

location ~* ^/(?!(wp|app)/) {
    rewrite ^ https://new_domain.com$request_uri? permanent;
}

上記は、/wp/もしくは/app/始まらないパスである場合のみ、新サーバーにリダイレクトを行うという設定になります(正規表現チェッカーで確認できます)。

参考記事: https://stackoverflow.com/questions/16302897/nginx-location-not-equal-to-regex#answer-39549548

設定後は、以下のURLに直接行くと、新サーバーにリダイレクトされずに旧ドメインで管理画面に入れるようになりました。

https://old_domain.com/wp/wp-admin/