ローカル環境(XAMPP、MAMP、Local by Flywheel、Dockerなど)に本番サイトをコピーしてWordPressを動作させる際、Really Simple SSLプラグインが有効になっているとサイトが正しく表示されなくなる問題に直面することがあります。
この現象は主に、ローカル環境では有効なSSL証明書が存在しないにもかかわらず、プラグインがHTTPSリダイレクトを強制するために発生します。
主な症状は、ブラウザのアドレスバーに「https://」が表示されるにもかかわらず、サイトが「接続できません」「安全でない接続」というエラーとなり、正常に表示されないというものです。
問題の原因
1. HTTPSの強制リダイレクト
Really Simple SSLは、本番環境でのHTTPS接続を強制するためのプラグインです。
- リダイレクトループ:
ローカル環境では通常、SSL証明書が存在しないため、HTTPでのアクセスが前提となります。しかし、プラグインは自動的にhttp://
からhttps://
へのリダイレクトを試みるため、リダイレクトループが発生してしまいます。 - 「安全でない接続」エラー:
自己署名証明書などを用いても、ブラウザは警告を出す場合があり、結果としてサイトが正しく表示されなくなります。
2. WordPressのURL設定の不一致
WordPressの一般設定で「WordPressアドレス (URL)」や「サイトアドレス (URL)」が本番環境のURL(例: https://example.com
)のままになっている場合、プラグインがそのURLを参照してHTTPSに切り替えようとするため、ローカル環境と合致せずエラーが発生する可能性があります。
3. プラグインの設定や競合
他のプラグインとの競合や、プラグイン自体のインストール不良が原因となって、Really Simple SSLが正しく動作しない場合も考えられます。
- インストールが不完全な場合や、古いバージョンが残っていると、設定が正常に反映されない可能性があります。
解決方法
以下の手順で、ローカル環境におけるReally Simple SSLプラグインの問題を解決できます。
方法1:データベースのURLをローカル用に変更する
- WordPress管理画面で確認
- 「設定」→「一般」で、「WordPressアドレス (URL)」と「サイトアドレス (URL)」が
http://localhost/your-site
(または使用しているローカルURL)になっているか確認します。 - もし
https://
となっている場合は、ローカル環境用に変更してください。
- 「設定」→「一般」で、「WordPressアドレス (URL)」と「サイトアドレス (URL)」が
- wp-config.phpで強制設定
- 以下のコードを
wp-config.php
に追加することで、ローカル環境専用の設定を強制できます。define('WP_HOME', 'http://localhost/your-site');
define('WP_SITEURL', 'http://localhost/your-site'); }
- 以下のコードを
方法2:Really Simple SSLプラグインを一時的に無効化する
- プラグインの無効化
- WordPressの管理画面にアクセスできる場合、[プラグイン] → [インストール済みプラグイン]から「Really Simple SSL」を無効化します。
- 管理画面にアクセスできない場合は、FTPやローカルファイルマネージャー、直接格納しているフォルダから、
wp-content/plugins/
内のreally-simple-ssl
フォルダの名称を一時的に変更(例:really-simple-ssl-disabled
)することで、プラグインを無効化できます。
- 再度管理画面にアクセスして確認
- プラグインが無効になれば、HTTPでの接続が可能になり、管理画面に問題なくアクセスできるか確認してください。
方法3:.htaccessファイルの修正
- .htaccessファイルを確認
- 本番環境で使用していたリダイレクト設定が残っている場合、ローカル環境では不要なため、該当部分をコメントアウトまたは削除します。
- 例
# BEGIN Force SSL
# RewriteEngine On
# RewriteCond %{HTTPS} off
# RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# END Force SSL
- 変更後、ブラウザのキャッシュもクリアする
- これにより、リダイレクトループが解消されるはずです。
方法4:ローカル環境でSSLを有効にする(オプション)
もしローカル環境でHTTPS接続をテストしたい場合は、以下の方法でSSL証明書を設定することも可能です。
- 自己署名証明書の作成
- mkcertなどのツールを使って、自己署名証明書を生成します。
- ローカルサーバーのSSL設定
- XAMPPやMAMPなど、利用しているローカルサーバーのドキュメントに従い、生成した証明書を適用してください。
- WordPressのURL設定を再確認
- 上記の方法1と同様に、WordPressのURLが
https://localhost/your-site
になっているか確認し、必要に応じて修正します。
- 上記の方法1と同様に、WordPressのURLが
※ この方法は少し設定が複雑ですが、HTTPS環境を再現して本番環境と同様のテストができるメリットがあります。
方法5:Really Simple SSLの再設定とキャッシュのクリア
- プラグインの再インストール
- 一度プラグインを無効化した後、再インストールして有効化します。
- これにより、プラグインが必要な設定を自動的に再構築する場合があります。
- ブラウザのキャッシュ、WordPressキャッシュのクリア
- ブラウザキャッシュや、もし使用しているキャッシュプラグインがあればそのキャッシュも削除して、最新の設定が反映されるようにします。
予防策と今後の注意点
ローカル環境で「Really Simple SSL」が正しく表示されない問題は、主に以下の要因によるものです。
- HTTPS強制リダイレクト:ローカル環境には有効なSSL証明書が存在しないため、プラグインが強制的にHTTPSに切り替えようとしてリダイレクトループが発生します。
- WordPressのURL設定の不一致:データベースや一般設定で、サイトURLが本番環境のままになっている場合、SSLが正しく適用されません。
- プラグインの設定や競合:プラグインの再インストールや設定の再構築が必要なケースもあります。
上記の解決策として、まずはプラグインの一時無効化、wp-config.phpや.htaccessファイルの設定確認、そして必要に応じてローカル環境でSSLを有効化する方法を試してください。
さらに、本番サイトのクローン作業前の準備や、開発環境固有の設定を見直すことで、同様の問題の再発を防ぐことができます。
これらの対策を講じることで、ローカル環境でも安全かつ快適にWordPressサイトを運用できるようになります。
ぜひ今回の手順を参考に、安心して開発作業を進めてください。