O erro ERR TOO MANY _ REDIRECTS acontece quando o navegador fica preso em um loop infinito de redirecionamentos. Você tenta acessar o site, o servidor redireciona para outra URL, que redireciona para outra, que redireciona de volta para a primeira, e assim por diante. Depois de algumas tentativas, o navegador desiste e exibe o erro.
Esse problema é mais comum do que parece e geralmente está ligado a configurações de SSL, URLs incorretas ou conflitos no .htaccess . A boa notícia: na maioria dos casos, a solução é simples.
Este artigo faz parte do nosso Guia Completo de Erros WordPress .
O Que Causa o Loop de Redirecionamentos
Antes de aplicar soluções, entenda as causas mais comuns:
- Configuração de SSL incorreta. O WordPress está configurado para HTTPS, mas o servidor ou proxy não está servindo HTTPS corretamente.
- URLs do WordPress e Site URL divergentes. Os campos "Endereço do WordPress" e "Endereço do site" estão com valores conflitantes.
- Regras de redirecionamento no .htaccess. Regras duplicadas ou conflitantes que criam loops.
- Cloudflare com modo SSL incorreto. O modo "Flexible" do Cloudflare combinado com HTTPS forçado no servidor causa loop.
- Conflito de plugins. Plugins de cache, segurança ou redirecionamento criando regras conflitantes.
- Redirecionamentos no cache do navegador. O navegador armazenou um redirecionamento antigo que não é mais válido.
- Configuração do servidor (Apache/Nginx). Regras de rewrite no servidor que conflitam com o WordPress.
Passo 1: Limpar Cookies e Cache do Navegador
Antes de qualquer alteração técnica, descarte a possibilidade de ser um problema local.
Chrome
- Pressione Ctrl + Shift + Delete (Windows) ou Cmd + Shift + Delete (Mac)
- Selecione Todo o período
- Marque Cookies e outros dados de sites e Imagens e arquivos armazenados em cache
- Clique em Limpar dados
Limpeza seletiva (apenas para o site com problema)
Se você não quer limpar todos os cookies:
- Clique no cadeado (ou ícone de informações) na barra de endereço
- Clique em Cookies e dados do site
- Remova os cookies do domínio específico
Teste em janela anônima
Abra uma janela anônima (Ctrl + Shift + N no Chrome) e tente acessar o site. Se funcionar na janela anônima, o problema era cache/cookies.
Se o erro persistir na janela anônima, o problema é no servidor. Continue para o próximo passo.
Passo 2: Verificar as URLs do WordPress
As URLs do WordPress ficam em dois campos: WordPress Address (URL) e Site Address (URL) . Se esses valores estiverem incorretos ou conflitantes, o redirecionamento em loop é garantido.
Cenários que causam loop
- WordPress URL com http:// e Site URL com https://
- WordPress URL com www e Site URL sem www
- WordPress URL com barra final e Site URL sem barra final
Verificando via wp-config.php
Se você não consegue acessar o painel do WordPress (o que é provável neste cenário), force as URLs pelo wp-config.php :
- Acesse os arquivos do site via FTP ou gerenciador de arquivos da hospedagem
- Abra o arquivo wp-config.php
- Adicione as seguintes linhas antes de /* That's all, stop editing! */ :
define('WP_HOME', 'https://seusite.com.br');
define('WP_SITEURL', 'https://seusite.com.br');
Importante:
- Use https:// se o site tem SSL. Use http:// se não tem.
- Se o site usa www , inclua (ex: https://www.seusite.com.br ). Se não usa, não inclua.
- Ambas as URLs devem ser idênticas.
Verificando via banco de dados
Se o wp-config.php não resolver, verifique diretamente no banco de dados:
- Acesse o phpMyAdmin
- Selecione o banco de dados do WordPress
- Abra a tabela wp_options
- Procure as linhas siteurl e home
- Verifique se ambas têm o mesmo valor e o protocolo correto
SELECT option_name, option_value FROM wp_options
WHERE option_name IN ('siteurl', 'home');
Para corrigir:
UPDATE wp_options SET option_value = 'https://seusite.com.br'
WHERE option_name IN ('siteurl', 'home');
Passo 3: Corrigir o .htaccess
O .htaccess é uma das causas mais frequentes de loops de redirecionamento. Regras duplicadas ou conflitantes, especialmente de redirecionamento HTTP para HTTPS, criam loops facilmente.
Renomeando o .htaccess atual
- Acesse os arquivos via FTP ou gerenciador de arquivos
- Na raiz do WordPress (onde está o wp-config.php ), encontre o .htaccess
- Renomeie para .htaccess_backup
- Crie um novo .htaccess com o conteúdo padrão do WordPress:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
- Tente acessar o site
Se funcionar, o problema era no .htaccess . Agora, se precisar forçar HTTPS, adicione a regra corretamente:
# Redirecionar HTTP para HTTPS (sem loop)
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Erros comuns no .htaccess
Regras duplicadas de HTTPS:
# ERRADO - duas regras de redirecionamento que se conflitam
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Mantenha apenas uma regra de redirecionamento para HTTPS.
Redirecionamento de www conflitante:
# ERRADO - redireciona para www e ao mesmo tempo tenta remover www
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
Escolha um padrão (com ou sem www) e use apenas uma regra.
Passo 4: Verificar a Configuração de SSL/HTTPS
Problemas de SSL são a causa mais comum do ERR TOO MANY _ REDIRECTS. O cenário típico é:
- O WordPress está configurado para https://
- O servidor (ou proxy reverso) está recebendo a requisição em HTTP
- O WordPress redireciona para HTTPS
- O servidor recebe novamente em HTTP (porque o proxy termina o SSL)
- Loop infinito
WordPress atrás de proxy reverso ou load balancer
Se o seu site está atrás de um proxy (Cloudflare, load balancer, Varnish), o servidor recebe as requisições em HTTP mesmo que o visitante esteja acessando via HTTPS. Adicione ao wp-config.php :
// Detectar HTTPS via proxy reverso
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
$_SERVER['HTTPS'] = 'on';
}
Isso diz ao WordPress que a conexão é HTTPS, mesmo que o servidor esteja recebendo HTTP do proxy.
Forçar HTTPS via wp-config.php
Adicione ao wp-config.php :
define('FORCE_SSL_ADMIN', true);
Isso força HTTPS apenas no painel administrativo, evitando loops no frontend.
Passo 5: Configurar o Cloudflare Corretamente
O Cloudflare é uma das causas mais frequentes de loops de redirecionamento. O problema está no modo de SSL.
Modos de SSL do Cloudflare
| Modo | Comportamento | Quando usar |
|---|---|---|
| Flexible | HTTPS entre visitante e Cloudflare. HTTP entre Cloudflare e servidor | Quando o servidor NÃO tem SSL |
| Full | HTTPS em ambos os lados. Aceita certificado auto-assinado | Quando o servidor tem SSL (qualquer certificado) |
| Full (Strict) | HTTPS em ambos os lados. Exige certificado válido | Quando o servidor tem certificado válido (Let's Encrypt, etc.) |
O problema do modo Flexible
Se o Cloudflare está em modo Flexible e o WordPress está configurado para HTTPS, acontece isso:
- Visitante acessa https://seusite.com.br (Cloudflare serve HTTPS)
- Cloudflare conecta com o servidor via HTTP (modo Flexible)
- O WordPress detecta HTTP e redireciona para HTTPS
- Cloudflare recebe o redirecionamento e conecta com o servidor via HTTP novamente
- Loop infinito
A solução
- Acesse o painel do Cloudflare
- Vá em SSL/TLS > Overview
- Mude o modo para Full ou Full (Strict)
- Certifique-se de que o servidor tem um certificado SSL instalado (Let's Encrypt funciona perfeitamente)
Se você não tem SSL no servidor, instale um antes de mudar para Full. Sem certificado no servidor, o modo Full vai gerar erro 525 ou 526.
Desativar "Always Use HTTPS" temporariamente
Se você precisa diagnosticar se o Cloudflare está causando o loop:
- No Cloudflare, vá em SSL/TLS > Edge Certificates
- Desative Always Use HTTPS
- Teste o site
- Se o loop parar, o problema é a combinação de SSL mode + force HTTPS
Limpar cache do Cloudflare
Redirecionamentos podem ficar cacheados no Cloudflare:
- Vá em Caching > Configuration
- Clique em Purge Everything
- Aguarde alguns minutos e teste novamente
Passo 6: Desativar Plugins
Se nenhuma das soluções acima funcionou, um plugin pode estar causando o loop. Plugins de cache, segurança e redirecionamento são os principais suspeitos.
Via FTP (sem acesso ao painel)
- Acesse os arquivos via FTP
- Vá até wp-content/
- Renomeie a pasta plugins para plugins_backup
- Tente acessar o site
Se o site funcionar, o problema é em um dos plugins. Para identificar qual:
- Renomeie plugins_backup de volta para plugins
- Acesse o FTP e, dentro de plugins/ , renomeie cada pasta de plugin individualmente
- Teste o site após desativar cada plugin
- Quando encontrar o causador, procure uma alternativa ou entre em contato com o desenvolvedor
Plugins que frequentemente causam loops
- Really Simple SSL - se mal configurado com o Cloudflare
- WP Force SSL - pode conflitar com regras do .htaccess
- Redirection - regras de redirecionamento circular
- Plugins de cache - redirecionamentos cacheados incorretamente
- Plugins de segurança - regras de firewall que forçam redirecionamentos
Passo 7: Verificar Redirecionamentos no Servidor
Além do .htaccess , o servidor pode ter configurações que causam loops.
Apache: Virtual Host
Se você tem acesso ao arquivo de configuração do Apache, verifique se não há redirecionamentos conflitantes no VirtualHost:
<VirtualHost *:80>
ServerName seusite.com.br
Redirect permanent / https://seusite.com.br/
</VirtualHost>
<VirtualHost *:443>
ServerName seusite.com.br
# Configurações SSL aqui
# NÃO adicione redirecionamento para HTTPS aqui (já está em HTTPS)
</VirtualHost>
Nginx
No Nginx, verifique se não há blocos server conflitantes:
# Redirecionar HTTP para HTTPS
server {
listen 80;
server_name seusite.com.br www.seusite.com.br;
return 301 https://seusite.com.br$request_uri;
}
# Bloco HTTPS
server {
listen 443 ssl;
server_name seusite.com.br;
# NÃO redirecione para HTTPS aqui (já está em HTTPS)
# Configurações SSL e do site
}
Erro comum no Nginx: ter um return 301 dentro do bloco 443 que redireciona para HTTPS novamente.
Como Debugar Cadeias de Redirecionamento
Para entender exatamente o que está acontecendo, use estas ferramentas.
curl no terminal
O comando curl -I mostra os headers de resposta, incluindo redirecionamentos:
curl -I -L http://seusite.com.br
A flag -L segue os redirecionamentos. Você vai ver a cadeia completa:
HTTP/1.1 301 Moved Permanently Location: https://seusite.com.br/ HTTP/1.1 301 Moved Permanently Location: http://seusite.com.br/ HTTP/1.1 301 Moved Permanently Location: https://seusite.com.br/ ...
Se as URLs se repetem, você encontrou o loop.
Para ver todos os redirecionamentos de forma mais detalhada:
curl -v -L --max-redirs 10 http://seusite.com.br 2>&1 | grep -i "location:"
Ferramentas online
- httpstatus.io - mostra a cadeia completa de redirecionamentos
- Redirect Checker (redirect-checker.org) - ferramenta específica para detectar loops
- Chrome DevTools > Network - na aba Network, filtre por "Doc" e veja os redirecionamentos 301/302
Chrome DevTools
- Abra o Chrome DevTools (F12)
- Vá para a aba Network
- Marque Preserve log (para manter os logs entre redirecionamentos)
- Desmarque Disable cache
- Acesse o site
- Observe as requisições com status 301 ou 302 e a coluna "Location"
Dicas de Prevenção
Para evitar o ERR TOO MANY _ REDIRECTS no futuro:
- Defina um padrão de URL e mantenha. Com ou sem www, HTTP ou HTTPS. Escolha um e configure em todos os lugares.
- Não misture fontes de redirecionamento. Se o Cloudflare já redireciona HTTP para HTTPS, não adicione a mesma regra no .htaccess e no wp-config.php.
- Teste alterações de SSL em staging. Antes de mudar configurações de SSL na produção, teste em um ambiente separado.
- Documente suas configurações. Anote onde cada redirecionamento está configurado (Cloudflare, .htaccess, Nginx, plugin).
- Faça backup do .htaccess antes de qualquer alteração.
Ainda Preso no Loop?
Se você tentou todos os passos acima e o erro persiste, o problema pode envolver configurações de servidor que exigem acesso root ou conhecimento avançado de Apache/Nginx. Não perca mais tempo tentando resolver sozinho. A equipe da HOSTWP diagnostica e resolve problemas de redirecionamento rapidamente, incluindo configurações de Cloudflare, SSL e servidor. Do servidor ao site, a gente cuida de tudo.
Fale com a HOSTWP pelo WhatsApp e resolva o erro de uma vez.
Leia também: