Problemas de SSL com o Magento atrás do balanceador de carga (loop 302)

11

Na frente da minha instalação do Magento, há um balanceador de carga que lida com todo o material SSL. Se eu não disser ao Magento que está recebendo uma conexão segura, ele entrará em um loop de redirecionamento 302. A única solução que encontrei até agora é corrigir o index.php principal (o código fica logo acima da Mage::runlinha na parte inferior do index.php):

/**
 * Prevent Magento from performing a 302 redirect loop.
 *
**/

if (isset($_SERVER['HTTP_X_FORWARDED_PROTO'])) {
    if ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') {
        $_SERVER['HTTPS'] = 'on';
        $_SERVER['SERVER_PORT'] = 443;
    }
}

(Adicionei o conteúdo da postagem do blog com a adição de um comentarista aqui, caso o link fique inoperante).

Como evitar corrigir um arquivo principal?

jmk
fonte

Respostas:

31

Graças a uma dica no canal # magento-de irc, encontrei uma solução muito mais elegante. Adicione estas linhas ao final do seu .htaccesse deve ficar bem:

# Detect the Load-Balancer-Header and set the header magento expects
SetEnvIf X-Forwarded-Proto https HTTPS=on

Vá aqui para uma explicação mais longa.

jmk
fonte
CARA. Esta solução resolveu o meu problema !!! Obrigado sooo muito
kevando
O mesmo aqui, isso resolveu meu problema.
David Tay
funcionou para mim também
Darryl
Depois de usar o cloudflare para usar ssl grátis, essa solução ajudou a corrigir o problema de loops infinitos.
Damodar Bashyal