ข้ามไปที่เนื้อหาหลัก

แก้ปัญหา base_url() ใน CodeIgniter แสดงแค่โดเมน เข้าไม่ถึง path ของโปรเจ็กต์

การเขียนโปรแกรม PHP ด้วย CodeIgniter Framework

ในบางครั้งเราอาจจะเจอปัญหา base_url() ที่เรียกใช้แล้วได้แค่ http://localhost หรือ http://www.your-domain-name.com เท่านั้น เข้าไปไม่ถึงใน Directory ที่ใช้เก็บโปรเจ็กต์ของเรา

วิธีแก้ไขก็คือ เข้าไปในไฟล์ config.php แล้วเพิ่มโค้ดด้านล่างนี้เข้าไปแทน





application/config/config.php
$potocal = 'http'.((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') ? 's' : '');
$directory = str_replace('//','/',dirname($_SERVER['PHP_SELF']).'/');
$base_url = $potocal . '://'.$_SERVER['HTTP_HOST'] . $directory;

$config['base_url'] = $base_url;

แก้ไข 
คำสั่งด้านบนนี้ เป็นการหาค่า URL ของหน้าเว็บปัจจุบัน ไม่ได้กำหนดค่า URL ของโปรเจ็กต์

เช่นเมื่ออยู่ใน Controller ชื่อว่า Shop จะได้ http://localhost/soap_station/index.php/shop

ดังนั้นเปลี่ยนเป็น


$potocal = 'http'.((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') ? 's' : '');
$directory = '/your_project_directory';
$base_url = $potocal . '://'.$_SERVER['HTTP_HOST'] . $directory;

$config['base_url'] = $base_url;




PHP CI MANIA PHP Code Generator 
โปรแกรมช่วยสร้างโค้ด ลดเวลาการเขียนโปรแกรม เขียนโปรแกรมง่ายและสะดวกขึ้น
สนใจสั่งซื้อราคาสุดคุ้ม >> http://fastcoding.phpcodemania.com/

ความคิดเห็น

ค้นหาในเว็บไซต์

เนื้อเพลงที่ได้รับความนิยม ในรอบสัปดาห์

ค้นหาบล็อกนี้