Проблемы SSL с Magento за балансировщиком нагрузки (цикл 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;
    }
}

(Я добавил содержание из поста в блоге с добавлением от комментатора здесь, на случай, если ссылка не работает).

Как я могу избежать исправления файла ядра?

JMK
источник

Ответы:

31

Благодаря подсказке на канале # magento-de irc я нашел гораздо более элегантное решение. Добавьте эти строки в конец вашей, .htaccessи все будет хорошо:

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

Иди сюда для более подробного объяснения.

JMK
источник
DUDE. Это решение исправило мою проблему !!! Спасибо ооочень большое
Кевандо
То же самое здесь, это решило мою проблему.
Дэвид Тэй
работал для меня тоже
Дэррил
После того, как я использовал cloudflare для использования бесплатного ssl, это решение помогло исправить проблему с бесконечными циклами.
Дамодар Башял
1
Решение nginx magento.stackexchange.com/questions/162392/…
Дэвид