ホームページ屋をさせていただいていると、「ホームページの引っ越し」を承ることがございます。
要はサーバーの移転です。
現状の状態をそのまま他のサーバーで復元する作業なのですが、データベースを使用しているケースだと少々手間がかかります。
既存サーバーからデータベースを取り出し、新しいサーバーへ入れなおす必要があるためです。
まれにこの作業で不具合が起こることがあるため、事前にテスト環境で再構築を行い、問題がないか確認します。
今回もワードプレスの引っ越しを行ったのですが、その際にテスト環境で動作テストを行った際に、想定外のことが起こりました。
テスト環境のxamppで起動すると強制的に「https://」へリダイレクトされました。
通常のサーバーであれば、SSLを導入しているのでhttps://に転送されても問題はありません。
ただ、テスト環境の場合SSLは不要のため導入していません。
SSLを導入していない場合にhttps://へリダイレクトされると、ブラウザがSSLエラーとなり何も表示されません。
というわけで、ワードプレスが強制的にhttps://に転送されてしまう原因についてググって調べて対処いたしました。
現象:xamppで.htaccessオフ状態なのにhttps://へ転送されてしまう。
xamppで構築したテスト環境であるため、様々な設定ができます。
当然SSL設定なし、.htaccessは設定オフにして無効になるようにしています。
https:// にリダイレクトされる要素はxampp側の設定ですべてオフにしているのに、ワードプレスを起動するとhttps://へリダイレクトされます。
最初は原因がわからずさっぱりでした。
でもあることに気が付きました。
「ワードプレス以外のHTML単独ファイルならばhttps://へリダイレクトされない。」
もしかしてワードプレス本体がリダイレクトしているのでは?
と気づきました。
ワードプレス自体にはそんな機能はないと思っていましたが、もしかしたらそんな機能のプラグインがあるのかもしれない。
そう思い、ワードプレスのプラグインを調べました。
リダイレクトの原因はワードプレスのプラグインでした。
https:// にリダイレクトされる原因を、ワードプレスのプラグインに絞って調べてみたところ、次のようなプラグインがありました。
文字通り、https://へリダイレクトするプラグインです。
このプラグインがワードプレスに盛り込まれていたため、リダイレクトが発生していました。
本番環境では必要なプラグインですが、テスト環境では一時オフにしておく必要があります。
ですが、https://にリダイレクトされるため、ワードプレスの管理画面にも入れません。
そこで、力技でこのプラグインを一時停止にしました。
プラグインフォルダ名を一文字変えるだけで一時停止状態にできます。
やり方は簡単です。
プラグインのフォルダ(/wp-content/plugins/)から該当のプラグインのフォルダ名一文字変更すればOKです。
これでプラグインは動作しなくなりますが、プラグイン本体は消えずに残ります。
実サーバーへUPする場合は、プラグインフォルダ名を元に戻せば再び動作します。
ふたを開けたら簡単なことでしたが1時間悩みました・・・。
原因はワードプレスのプラグインでしたが、そこへだどりつくまで1時間かかりました。
リダイレクトは通常.htaccessで指定するものだと思っていたためです。
てっきりxamppの設定に問題があると思い込み、xampp側ばかり調べていたために、原因がわからない迷宮に入り込んでいました。
こういう時に「そんなことはありえない」という考え方ではだめなのだと身をもって知りました。
凝り固まった考えでは、問題は解決できないものです。
行き詰まったら、逆のアプローチで解決できることがあるかもしれません。