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?

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.


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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.