Magento在负载均衡器后面的SSL问题(302循环)


11

在我的Magento安装之前,是一个负载均衡器,负责处理所有SSL内容。如果我不告诉Magento它正在接收安全连接,它将进入302重定向循环。到目前为止,我发现的唯一解决方案是像这样对主index.php进行补丁(代码就Mage::run在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;
    }
}

(以防链接失效,我添加了博客文章中的内容以及评论者的内容)。

如何避免修补核心文件?

Answers:


31

感谢#magento-de irc频道上的提示,我找到了一个更为优雅的解决方案。将这些行添加到您的末尾,.htaccess应该没问题:

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

请转到此处进行详细说明。


杜德 这个解决方案解决了我的问题!!!非常感谢您
— kevando

同样在这里,这解决了我的问题。
— 大卫·泰

工作对我来说太
— 达里尔

在我使用cloudflare使用免费的SSL之后,此解决方案有助于解决无限循环问题。
— Damodar Bashyal

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.