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.