A página de login do WordPress fica redirecionando em loop
RESPOSTA DIRETA
Um loop de redirecionamento no login do WordPress geralmente é causado por valores `siteurl` e `home` incompatíveis, cookies de login antigos ou uma divergência sobre HTTPS entre o WordPress e um reverse proxy. Teste `wp-login.php` em uma janela anônima, verifique os valores de URL na tabela de opções, limpe os cookies do site e confira o comportamento do proxy e do SSL. Trate um loop restrito ao login separadamente de um problema de redirecionamento que afeta todo o site.
Pontos principais
- Confirme se
siteurlehomeusam o domínio atual e o mesmo protocolo pretendido. - Teste em uma janela anônima ou em outro navegador para diferenciar cookies armazenados de uma configuração no servidor.
- Se um proxy ou load balancer terminar o SSL, verifique se o WordPress recebe o estado HTTPS correto.
- Revise alterações de domínio, migração, cache, segurança e cookies feitas pouco antes do início do loop.
- Faça backup do banco de dados e da configuração antes de alterar URLs ou configurações de redirecionamento, e altere uma configuração por vez.
Site Administrator
O que este erro significa e como reconhecê-lo
- Abrir
wp-login.phprepetidamente retorna à página de login. - O navegador informa que há redirecionamentos demais ou nunca termina de carregar o formulário de login.
- O login parece ser concluído, mas a sessão retorna imediatamente à tela de login.
- O loop ocorre em um navegador, mas não em outro, ou desaparece em uma janela de navegação anônima.
- O problema começou após uma alteração de domínio, migração de HTTP para HTTPS, mudança de hospedagem, alteração de proxy ou mudança relacionada à configuração de cookies.
Causas principais, por probabilidade
- Valores
siteurlehomeincompatíveis: Os valores no banco de dados do WordPress podem usar domínios, protocolos ou endereços de migração antigos diferentes. Os redirecionamentos de login podem então alternar entre URLs conflitantes. - Cookies antigos ou com escopo incorreto: Cookies de um domínio, protocolo ou caminho anterior podem conter um estado de autenticação inutilizável e fazer o navegador retornar repetidamente ao login.
- Divergência na terminação de SSL ou no reverse proxy: Um proxy pode receber HTTPS enquanto a origem interpreta a requisição como HTTP. O WordPress pode então emitir redirecionamentos com base no protocolo incorreto.
- Migração ou alteração de domínio incompleta: Valores de configuração ou do banco de dados ainda podem fazer referência ao endereço anterior do site.
- Conflito entre configurações de redirecionamento, cache, segurança ou cookies: Esses problemas são menos prováveis do que questões de URL, cookies e HTTPS, mas podem substituir ou entrar em conflito com o comportamento normal de login do WordPress.
Como corrigir
1. Confirme se o problema é específico do navegador
Abra wp-login.php em uma janela de navegação anônima ou em outro navegador. Se o loop desaparecer, limpe os cookies e os dados do site referentes ao domínio afetado no navegador original e inicie uma nova sessão.
Esse teste separa o estado armazenado no navegador de um problema no servidor; ele não comprova que a configuração do servidor está correta.
2. Verifique siteurl e home
Usando a ferramenta de administração do banco de dados ou outro método de manutenção confiável, verifique as entradas siteurl e home na tabela de opções do WordPress. A tabela pode usar um prefixo personalizado em vez do prefixo padrão wp_.
Antes de editá-las, faça backup do banco de dados e confirme que você está trabalhando no site correto. Os dois valores devem:
- Usar o domínio atual.
- Usar o mesmo protocolo pretendido, normalmente HTTPS quando o site está configurado para HTTPS.
- Não usar um domínio antigo, endereço de migração ou nome de host alternativo não intencional.
- Corresponder ao endereço que os usuários realmente usam para acessar o site.
Se os valores estiverem incorretos, corrija-os de forma consistente por meio de um processo de manutenção aprovado e teste novamente a página de login. Não altere outras configurações ao mesmo tempo.
3. Remova cookies de login antigos
Exclua os cookies e os dados do site referentes ao domínio afetado, feche a aba de login existente e abra uma nova sessão. Se possível, teste novamente em uma janela anônima.
Isso é especialmente útil após alterar o domínio, ativar HTTPS ou migrar o site. Se limpar os cookies resolver o loop apenas temporariamente, continue verificando as configurações de URL e HTTPS em vez de tratar a exclusão de cookies como uma solução permanente.
4. Verifique o comportamento do HTTPS e do reverse proxy
Se um reverse proxy, load balancer ou camada de hospedagem gerencia o SSL antes que as requisições cheguem ao WordPress, verifique se ele encaminha o estado HTTPS correto e se a origem está configurada para esse arranjo.
O navegador, o proxy, o servidor web e o WordPress devem concordar sobre o uso de HTTPS na requisição. Um padrão comum de falha é uma requisição HTTPS chegar à origem como HTTP, seguida de um redirecionamento para HTTPS; a próxima requisição é interpretada da mesma forma e o ciclo se repete.
Aplique as alterações de acordo com o ambiente de hospedagem e os procedimentos de manutenção aprovados e, em seguida, teste novamente wp-login.php. Não altere configurações do proxy ou do servidor sem autorização, pois elas podem afetar todo o site.
5. Revise as alterações recentes
Se o loop começou após uma migração, alteração de domínio, mudança de SSL ou proxy ou mudança de hospedagem, compare a configuração atual com a anterior. Procure referências ao domínio antigo, protocolos inconsistentes e configurações de cookies que ainda descrevam o ambiente antigo.
6. Isole conflitos de redirecionamento e segurança
Se os valores de URL, os cookies e a configuração de HTTPS estiverem corretos, revise as configurações relacionadas a redirecionamento, cache, segurança e cookies. Use um processo de manutenção aprovado, mantenha um backup e teste uma alteração por vez.
O objetivo é identificar a configuração que altera o comportamento do login, não desativar proteções permanentemente.
7. Teste novamente e registre o primeiro redirecionamento inesperado
Após cada alteração, comece com uma sessão limpa do navegador e teste diretamente a página de login. Observe se o formulário é carregado, se o envio das credenciais retorna ao login e se o endereço muda entre domínios ou protocolos.
O primeiro redirecionamento inesperado geralmente aponta para a configuração que precisa ser corrigida.
Prevenção e como verificar a correção
- Registre o domínio e o protocolo pretendidos antes de alterar as configurações de URL do WordPress.
- Faça backup do banco de dados e da configuração antes de migrações, alterações de URL ou mudanças de proxy.
- Depois de ativar o SSL ou um proxy, teste tanto a interface pública quanto
wp-login.phpem uma sessão limpa do navegador. - Remova ou atualize referências ao domínio antigo após uma migração.
- Documente como o proxy comunica o HTTPS à origem.
- Altere uma configuração relacionada a redirecionamento, segurança, cache ou cookies por vez e teste novamente o fluxo de login.
Quando buscar ajuda externa
Entre em contato com o provedor de hospedagem ou o administrador do WordPress se você não conseguir acessar o banco de dados, não souber se o SSL é terminado por um proxy ou se o loop continuar depois da verificação dos cookies e dos valores de URL.
Faça uma escalação imediata após uma migração se não tiver certeza de quais valores do banco de dados ou da configuração são a fonte de autoridade. Forneça o horário aproximado de início, as alterações recentes, se a navegação anônima muda o resultado, o comportamento do domínio e do protocolo e o primeiro redirecionamento inesperado. Não compartilhe senhas nem cookies de autenticação.
Documentação adicional
Para obter detalhes de implementação oficiais, consulte a documentação do WordPress sobre alterações de URL do site, cookies de login e configuração de HTTPS ou reverse proxy. Consulte também a documentação do provedor de hospedagem, proxy, load balancer ou servidor web do site para confirmar como o estado HTTPS é encaminhado ao WordPress.