目次

CloudFlareをWordPressサイトに使う

WordPressを使っているサイトに、CloudFlareを適用してハマったので、その解決のメモ。

ERR_TOO_MANY_REDIRECTS発生

DNSを変更し、CloudFlare経由でサイトを表示しようとすると、ブラウザが ERR_TOO_MANY_REDIRECTS というエラーを出すようになった。
(ちなみにこのエラーコードはFireFox系のブラウザでは表示されず、Chrome系のブラウザでお目にかかれる)
ここでCookieを削除しろと表示されるが、削除しても効果はなかった。

HTTP->HTTPS転送の問題っぽいが

CloudFlareのトラブルシュートのページ(ERR_TOO_MANY_REDIRECTS)は、HTTP→HTTPSの自動転送がよろしくないとあったので、.htaccessでRewriteRuleを記述していたのを削除したら表示されるようになった。
・・・が、これが罠だったのである。

サイトのページは表示されるのだが、管理ページにアクセスできない。上記のトラブルシュートは「ともかくRedirectが無限ループになる問題だよ」という主旨なので、RewriteRuleをひたすら点検することに時間を費やした。

管理ページ特有の問題なのか?

こういうページも見つけた - CloudFlare を導入する際の注意点のメモ

管理ページに関することなので、有効な手段化と思ったが・・・関係なかった。

実はCloudFlareの設定の問題だった

しかたないので、.htaccess の RewriteRuleを全部OFFにしてみた。レンタルサーバー側の転送設定もOFFになっていることを確認した。だがエラーは表示され続ける。Redirect無限ループとは違う問題なのではないか・・・。

How to Fix the WordPress ERR_TOO_MANY_REDIRECTS Problem というページの How to Fix Cloudflare SSL Settings というセクションに、こういう記述がある。

How to Fix Cloudflare SSL Settings
If you're using Cloudflare, you'll want to check your Cloudflare SSL settings to make sure that they aren't triggering this issue.
The most common cause here is having installed an SSL certificate on your WordPress site's server but using Cloudflare's Flexible setting instead of the Full setting.
The Full setting will make use of your newly installed SSL certificate when accessing the server.
To check this, open your Cloudflare dashboard and then go to the SSL/TLS settings for the site where you're experiencing issues.
If you've installed an SSL certificate on your server, Cloudflare should be configured to use either Full or Full (strict). In most cases, choosing Full is the safest option.

DeepL翻訳したものを貼り付けておく。

Cloudflare SSL設定の修正方法
Cloudflareを使用している場合、CloudflareのSSL設定がこの問題を引き起こしていないか確認したい。
最も一般的な原因は、WordPressサイトのサーバーにSSL証明書をインストールしたにもかかわらず、CloudflareのFull設定ではなくFlexible設定を使用していることです。
Full設定は、サーバーにアクセスする際に新しくインストールしたSSL証明書を使用します。
これを確認するには、Cloudflareのダッシュボードを開き、問題が発生しているサイトのSSL/TLS設定に進みます。
サーバーにSSL証明書をインストールした場合、CloudflareはFullまたはFull(strict)のいずれかを使用するように設定されているはずです。ほとんどの場合、Fullを選択するのが最も安全です。

CloudFlareの設定を確認したところ、「フレキシブル」になっていた。これを「フル」に設定したところ、無事解決した

今回は、HTTP→HTTPS設定や、RewriteRule、海外IPアクセス制限、SiteGuardは関係なかった。