CodeIgniter กับปัญหา base_url() บนเครื่องที่ติดตั้ง IIS และ Apache หรือเว็บเซิร์ฟเวอร์ที่ IP ต่างกัน
CodeIgniter กับปัญหา base_url() ปัญหานี้เกิดขึ้นหลังจากที่เปลี่ยนมาใช้ CodeIgnditer เวอร์ชั่น 3.1.6 (ก่อนหน้านี้ใช้เวอร์ชั่น 2 สามารถเรียก base_url() ได้ปกติ) ปรากฏว่าเวอร์ชั่นใหม่นี้ จะแสดง URL เป็นไอพี ตามที่ได้ตั้งไว้กับ IIS ซึ่งเป็นเซริฟเวอร์อีกตัว ทำให้โหลดไฟล์ JS, CSS ต่างๆไม่ได้ เมื่อ echo base_url() ออกมาดู จะเห็น URL ที่ไม่ตรงกับในช่อง url address หลังจากค้นหาวิธีอยู่นานสองนาน ก็ได้คำตอบว่า 1. ปรับค่า $config['base_url'] ให้ตรงตาม project 2. เขียนโค้ดเพิ่มเติมโดยอ่านจาก $_SERVER ซึ่งตัวผมเลือกใช้แบบเขียนโค้ดเพิ่มเพื่อดึงค่า URL ปัจจุบันมาใส่ใน config เพราะเวลาเปลี่ยนโปรเจ็กต์ หรืออัพขึ้นโฮสต์จริง จะได้ไม่ต้องตามไปแก้ไขอีก เมื่อรีเฟรชหน้าเว็บโปรเจ็กต์อีกครั้ง จะเห็นว่า Template แสดงผลได้ถูกต้อง และ ค่าที่ echo base_url() ออกมาตรงกับที่ช่อง URL ADDRESS สำหรับส่วนที่ต้องแก้ไขนั้นอยู่ในไฟล์นี้ application/config/config.php $potocal = 'http'.((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'