ERR_TOO_MANY_REDIRECTS on WordPress

WP_HOME and WP_SITEURL set to https:// while a proxy passes the request as http:// makes WordPress redirect endlessly trying to reach the scheme it already thinks it is on.

Why it happens on WordPress

WP_HOME and WP_SITEURL set to https:// while a proxy passes the request as http:// makes WordPress redirect endlessly trying to reach the scheme it already thinks it is on.

The fix on WordPress

Add the standard HTTP_X_FORWARDED_PROTO check to wp-config.php so WordPress detects HTTPS correctly behind the proxy, and confirm both WP_HOME and WP_SITEURL use the same canonical hostname.

If that didn't fix it

WordPress has its own failure mode, but ERR_TOO_MANY_REDIRECTS has a wider set of causes. The most common one overall is: The CDN forwards to the origin over HTTP while the origin redirects all HTTP to HTTPS — an infinite loop.

Switch the CDN's SSL mode to Full so the origin leg is encrypted, or make the origin trust the forwarded-proto header instead of the raw scheme.

Check your own domain

The uptime probe returns the full redirect chain, so you can see the exact two URLs bouncing off each other instead of inferring it from behaviour.

Frequently asked questions

Why does ERR_TOO_MANY_REDIRECTS happen on WordPress?

WP_HOME and WP_SITEURL set to https:// while a proxy passes the request as http:// makes WordPress redirect endlessly trying to reach the scheme it already thinks it is on.

How do I fix ERR_TOO_MANY_REDIRECTS on WordPress?

Add the standard HTTP_X_FORWARDED_PROTO check to wp-config.php so WordPress detects HTTPS correctly behind the proxy, and confirm both WP_HOME and WP_SITEURL use the same canonical hostname.

What does ERR_TOO_MANY_REDIRECTS mean?

Two rules are bouncing the request back and forth — most often an HTTPS redirect at the application level fighting a proxy that is forwarding as plain HTTP, so each side thinks the other needs to upgrade.