Problèmes SSL avec Magento derrière l'équilibreur de charge (boucle 302)

11

Devant mon installation Magento se trouve un équilibreur de charge qui gère tous les trucs SSL. Si je ne dis pas à Magento qu'il reçoit une connexion sécurisée, il entrera dans une boucle de redirection 302. La seule solution que j'ai trouvée jusqu'à présent est de patcher le index.php principal comme ceci (le code va juste au-dessus de la Mage::runligne en bas du 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;
    }
}

(J'ai ajouté le contenu de l'article de blog avec l'ajout d'un commentateur ici, au cas où le lien disparaîtrait).

Comment éviter de patcher un fichier core?

jmk
la source

Réponses:

31

Grâce à une astuce sur la chaîne # magento-de irc, j'ai trouvé une solution beaucoup plus élégante. Ajoutez ces lignes à la fin de votre .htaccesset ça devrait aller:

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

Allez ici pour une explication plus longue.

jmk
la source
MEC. Cette solution a résolu mon problème !!! Merci beaucoup
kevando
Même chose ici, cela a résolu mon problème.
David Tay
travaillé pour moi aussi
Darryl
Après avoir utilisé cloudflare pour utiliser SSL gratuit, cette solution a aidé à résoudre le problème des boucles infinies.
Damodar Bashyal