If you’re viewing this guide then its likely that your website is returning a Too Many Redirects or ERR_TOO_MANY_REDIRECTS error message, this usually happens when your site is stuck in an infinite redirection loop.
A redirection loop prevents pages from loading and can effectively take your site offline as visitors will just see this error page. In this guide learn about some of the common causes and how to resolve them.
Sometimes you can gain insights through external websites that show website status codes and redirects.
Incorrect rules in your .htaccess file often cause problems which can include redirect loops particularly when the rule is “active” For example:
RewriteCond "%{HTTP_HOST}" "domain.com$"
RewriteRule ".*" "https://my.domain.com/" [L,R=301]
In this case, the condition matches both domain.com and my.domain.com, since both contain domain.com. This creates a continuous redirect loop.
To fix this, use a more precise condition that checks if the request is not already on the destination domain:
RewriteCond %{HTTP_HOST} !^my\.domain\.com [NC]
RewriteRule ^(.*)$ https://my.domain.com/$1 [R=301,L]
This only redirects when the request is not for my.domain.com, preventing the loop.
If you’re unsure which rule is causing the problem, try temporarily renaming your .htaccess file to disable it. If your site loads correctly afterward, the issue lies within that file.
When HTTPS websites attempt to load assets over HTTP, browsers may automatically correct the request or trigger redirects especially when additional HTTPS rules are in place. This can result in a loop between HTTP and HTTPS versions of the site.
Once the URLs are updated and consistent, re-enable HTTPS redirection. Other tools that can help with SSL include SSL Server Test.
Some content management systems (like Joomla or WordPress) allow you to force HTTPS directly from the admin panel. If you’re also enforcing HTTPS via .htaccess or your hosting control panel, these methods may conflict creating a redirection loop.
To fix this you can check your CMS settings for any HTTPS options and disable them temporarily. Also check over any redirections set up in cPanel.