How to Fix “Too Many Redirects” Error Messages

You have most likely seen this error message before:

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 you have noticed this page in the browser:

Image taken from the browser, getting a redirect loop error

This error occurs when a website redirects you in a loop. The browser or web server will break the loop and display an error page in such cases. A redirect loop means that URL A redirects to URL B, which then redirects back to URL A, creating an endless cycle.

Common Causes of Redirect Loops

Conflicting Redirects

Redirect loops can occur due to there somewhere in your code, files, or settings, there is more than one redirect command that conflicts with the 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.

HTTP to HTTPS Redirect Loops

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, which are easy to fix – we’ll discuss them in this article.

How to Fix Redirect Loops

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.

SSL and TLS encryption settings in the Cloudflare Admin Panel

WordPress Configuration Files

.htaccess File

Check your .htaccess file in the public/ directory of your website. A default WordPress .htaccess file should look 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

wp-config.php File

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

Database URL Settings

You can also check your base/home URLs in the database. Go to your Admin Panel, and under the database tab, you can find a link to phpMyAdmin.

Image taken from the Servebolt Admin Panel

The login credentials to your database can be found in an email sent to the Bolt owner when creating a site/database. Alternatively, these credentials can be found in your database configuration file. For WordPress, this configuration file is typically located in the following file path: ~/public/wp-config.php


When you are logged in, 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.

Image taken from phpMyAdmin

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

Deactivating 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. The 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 log in to your WordPress backend, go to your plugins, and activate them one by one until you find the plugin that was causing the issue.

Servebolt Admin Panel Settings

In the Servebolt Admin Panel:

  1. Check the redirect settings for your site.
  2. Ensure all redirects point to the same HTTPS domain.
  3. Verify there are no conflicts between HTTP/HTTPS and www/non-www URLs.
Image of the Servebolt Admin Panel redirect options

The “Too Many Redirects” error is typically caused by conflicting redirect settings or improper configurations. You can resolve most redirect loops by checking and adjusting your Cloudflare SSL/TLS settings, WordPress configuration files, database URL settings, and plugins. Always ensure consistency in your URL redirects and seek help from Servebolt support if needed. Following these steps will help you identify and fix the root cause, ensuring your website runs smoothly without redirect errors.