ปัญหา SSL กับ Magento ที่อยู่เบื้องหลัง load balancer (302 loop)


11

ด้านหน้าการติดตั้ง Magento ของฉันคือ load balancer ที่จัดการกับ 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;
    }
}

(ฉันเพิ่มเนื้อหาจากการโพสต์บล็อกด้วยการเพิ่มความคิดเห็นจากที่นี่ในกรณีที่ลิงค์เสียชีวิต)

ฉันจะหลีกเลี่ยงการปะแก้ไฟล์หลักได้อย่างไร?

คำตอบ:


31

ขอบคุณเคล็ดลับในช่อง # magento-de irc ฉันพบวิธีแก้ปัญหาที่สง่างามกว่ามาก เพิ่มบรรทัดเหล่านี้ที่ส่วนท้ายของคุณ.htaccessและควรจะดี:

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

ไปที่นี่เพื่อดูคำอธิบายเพิ่มเติม


เพื่อน. วิธีนี้แก้ไขปัญหาของฉัน !!! ขอบคุณมาก ๆ
kevando

เช่นเดียวกันที่นี่แก้ปัญหาของฉันได้
David Tay

ทำงานให้ฉันด้วย
ดาร์ริล

หลังจากฉันใช้ cloudflare เพื่อใช้ free ssl โซลูชันนี้ช่วยแก้ไขปัญหาลูปไม่สิ้นสุด
Damodar Bashyal

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.