WordPress wp-admin https redirecionar loop

60

Estou usando o nginx como meu servidor da web e editei o arquivo de configuração para apontar para https, então altero as configurações de URL do WordPress para https e também adicionei o código de administração ssl do WordPress force ao meu arquivo wp-config, mas continuo com o erro " Esta página tem um loop de redirecionamento "

insira a descrição da imagem aqui

iamkingsleyf
fonte

Respostas:

98

Você adicionou $_SERVER['HTTPS'] = 'on';ao seu wp-config.php ?

Você também deve usar o plug-in WP Migrate DB para migrar de http://yoursite.comparahttps://yoursite.com

thaevok
fonte
9
Eu daria a você 1000 votos positivos por isso!
precisa saber é o seguinte
5
Por alguma razão, esse passo vital geralmente não é incluído.
Tania Rascia
4
Obrigado! Isso provavelmente me salvou mais algumas horas tentando descobrir por que a área administrativa não estava funcionando com SSL.
Sledge Hammer
4
Uau! $ _SERVER ['HTTPS'] = 'ativado'; me salvou!
precisa saber é o seguinte
2
Por que isso funciona? Eu já usei a ferramenta S&R da Interconnect. Eu já deveria ter o protocolo certo no banco de dados.
21417 Jeff
51

Tive um problema semelhante e acabei de adicionar o seguinte trecho ao meu wp-config.php:

/** SSL */  
define('FORCE_SSL_ADMIN', true);  
// in some setups HTTP_X_FORWARDED_PROTO might contain  
// a comma-separated list e.g. http,https  
// so check for https existence  
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false)  
    $_SERVER['HTTPS']='on';

conforme sugerido no Codex . Isso só será necessário se houver uma passagem SSL ativada na configuração do balanceador de carga (ou firewall). Significando que, embora você possa acessar o site via HTTP dentro de TLS / SSL, a comunicação que seu servidor recebe é apenas HTTP. Para explicar isso, o cabeçalho acima é necessário para que o WordPress possa "definir" o HTTPS onna $_SERVERmatriz de configuração.

Elias
fonte
2
Esta é uma ótima solução especificamente para quem usa um balanceador de carga. Eu estava hospedando isso usando o Dokku (um clone do Heroku para hospedar você mesmo) e tendo problemas com o carregamento estático de recursos e o loop de redirecionamento wp-admin. O Dokku também faz um proxy reverso nginx para encaminhar o tráfego 443 recebido para a porta 80 e isso corrige o problema.
ZachM
3
Eu só tinha que colocar o $_SERVER['HTTPS'] = 'on';HTTP_X_FORWARDED_PROTO nem mesmo nas configurações do servidor do meu cliente: |
precisa saber é o seguinte
11
Corrigido meu problema perfeitamente ao usar um balanceador de carga da AWS.
21717 Josh
Isso também corrigiu o "Problema de redirecionamento demais", pois meu site está protegido por um balanceador de carga na AWS.
voam
Acho importante adicionar a esta resposta a correção do arquivo .htaccess para esses casos: stackoverflow.com/questions/36748110/… , verifique @ harshal-lonare answer.
Gustavo Jantsch
11

Como ainda não tenho o privilégio de comentar, postarei essa adição como outra resposta:

A solução proposta por Elias, para adicionar o seguinte wp-config.php, fez o truque para mim:

/** SSL */  
define('FORCE_SSL_ADMIN', true);  
// in some setups HTTP_X_FORWARDED_PROTO might contain  
// a comma-separated list e.g. http,https  
// so check for https existence  
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false)  
    $_SERVER['HTTPS']='on';

No entanto, só funcionou para mim quando o coloquei antes de tudo neste arquivo!

Michael Jung
fonte
11
Esse era exatamente o meu problema. Eu as coloquei no final do arquivo e não estava funcionando. Eu estava pronto para reconstruir meu site do zero. Movi-os para o topo e bam, problema corrigido. Obrigado, obrigado !!
21418 Dean Poulin
Essa solução é ótima se você estiver usando um SSL flexível atrás de um DNS proxy como o Cloudflare. Obrigado.
21418 Stefan P
Trabalho confirmado. Muito obrigado, isso corrige muitos problemas que tivemos com APIs e IFrames. O site não tem HTTPS ativado, mas precisamos de algumas páginas para ativá-lo. Wordpress deve ter isso como uma configuração por defeito ...
Andy
FYI - esse código pode estar em qualquer lugar, mas precisa estar antes do require_once( ABSPATH . 'wp-settings.php' );que está no final do arquivo.
Damodar Bashyal
7

Outra versão para os livros, basta adicioná-lo ao topo do wp-config.php

A razão é que pode haver balanceadores de carga ou algo que não repasse o valor https correto, então você deve obtê-lo de outro lugar e falsificá-lo para o wordpress.

if ( (isset($_SERVER['HTTP_X_FORWARDED_PORT'] ) && ( '443' == $_SERVER['HTTP_X_FORWARDED_PORT'] ))
    || (isset($_SERVER['HTTP_CF_VISITOR']) && $_SERVER['HTTP_CF_VISITOR'] == '{"scheme":"https"}')) {
    $_SERVER['HTTPS'] = 'on';
}
Timo Huovinen
fonte
0

Na verdade ... eu tive esse problema e a solução foi bastante fácil e embaraçosa. De alguma forma, no host da web, minha pasta wp-admin foi excluída e, portanto, nenhum wp-admin com a mesma mensagem de erro.

Depois de horas testando tantas maneiras diferentes, acabei de ver isso e, quando baixado e carregado novamente, tudo funcionou normalmente.

Olha galera, pode ser assim tão simples.

emcolsson
fonte
0

Pergunta de 5 anos ...

Ok, eu tive esse erro, depois de instalar o meu Certificado SSL e mudar todos os links que estavam httpa httpsusar o wp-cli.phar encontrada aqui .

Tentei várias configurações e nenhuma parecia resolver isso, a menos que eu defina isso:

define('FORCE_SSL_ADMIN', true); 
define('FORCE_SSL_LOGIN', true);

para isso:

define('FORCE_SSL_ADMIN', false);
define('FORCE_SSL_LOGIN', false);

Ele me permitiu acessar a página de logon, mas não conseguiu efetivamente efetuar o login. Tentei a resposta dois, mas infelizmente isso também não ajudou, até que fiz a seguinte alteração:

/** SSL */   
define('FORCE_SSL_ADMIN', true);
// in some setups HTTP_X_FORWARDED_PROTO might contain
// a comma-separated list e.g. http,https   
// so check for https existence   
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== true)  
     $_SERVER['HTTPS']='on';

Por alguma razão, não sei por que - tive que mudar o

! == false

para

! == true

Estou executando o nginx como host e proxy reverso para a unidade nginx ... Se alguém tiver alguma idéia do por que isso funcionou, por favor me avise

Ricky
fonte