You might have come across this error:
AH00124: Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.
Or maybe noticed this in the browser:

This happens because the site redirects you too many times. When redirects happen in a loop, the browser or the web server will try to break the loop and return you to the error page. A loop means that you try to go to A, where A sends you to B but B sends you back to A again, and so forth.
Table of contents
Why does this redirect loop happen?
This happens because somewhere in your code, files, or settings there are more than one redirect commands that conflict with each other. A usual mistake is redirecting www.example.com
to example.com
, but somewhere else it says the opposite, this will create a redirect loop.
A http
to https
redirect loop is also very common.
The most common issue is that http redirects to https and https then redirects back to http, causing the loop. There are several different common causes for this, that are easy to fix – which we discuss in this article.
Redirect loops caused by Cloudflare SSL/TLS
If you are using Cloudflare with the self-signed certificate option you need to make sure that SSL/TLS is set to Full in Cloudflare. Setting it either to Flexible or Full (strict) may then sometimes cause redirect loops.
WordPress .htaccess and wp-config.php
You can also check the .htaccess
or wp-config.php
file in the public/
directory of your website. A default WordPress .htaccess
file looks like this:
# BEGIN WordPress
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
And in the wp-config.php
file you can check if you have one or both of these statements set:
define('WP_HOME','http://example.com');
define('WP_SITEURL','http://example.com');
These defines should, if set, usually both be set to the https://yourdomain.com
Finding Redirects in the Database
Check your base/home URLs in the database as well. Go to your Control Panel and under the database tab you can find a link to phpMyAdmin.

The database login credentials should be an email that gets sent when creating a site/database.
Then navigate to the table where the base/home URLs are stored.
In WordPress, this is stored in the table called wp_options
, and under option_name
you will find the value siteurl
and home
.

You can also use WP-CLI with SSH by running this command in the ~/public
directory.
# For site URL wp option get siteurl # For home URL wp option get home
Deactivate plugins
A redirection loop may be a result of an active plugin on your site. If you are not able to login to your WordPress backend here is an alternative solution. It requires you to either login to your site using SFTP or SSH.
Now that you are logged in, you can navigate to your wp-content folder, standard path is: ~/public/wp-content/
This is where you find the folder “plugins”, renaming the plugins folder will deactivate all plugins on your site. When that is done, refresh your website and see if that helped. If it did, then there is a plugin that is causing the redirection loop. To figure out which plugin it was you will need to login to your WordPress backend, go to your plugins, and activate one by one until you find the plugin that was causing the issue.
Go through all of the steps above and see if any of them conflict with each other. Either remove all the redirects or make sure every one of them redirects to the same URL. Look closely for differences in HTTP/HTTPS and www
/ not-www
URLs.
Check settings in the Servebolt Control Panel
To fix it you can try to look in the Control Panel under the settings of your site:

If you use both of these settings, make sure you use the same https domain.
If you can’t fix it, let us know in our support chat and we’ll have a look for you!