2016年10月22日 星期六

解決 Codeigniter 3.x 必須設定 $config['base_url'] 問題

CI 3.X 改成一定要設定 $config['base_url'] 後,
第一個碰到的問題就是:
在本機測試時要改一次 $config['base_url'] = 'http://localhost',
要丟到伺服器時又要在改一次 $config['base_url'] = 'http://www.000.com',
常常一不注意就忘記改了,整個網站就出現找不到網頁的冏(窘)境,

然後我查看一下 core 裡的 config.php, 覺得他寫的很奇怪,為什麼要去取 $_SERVER['SERVER_ADDR']? 在怎麼判斷 SERVER 的 IP,
客戶端也連不到正確的 base_url, 例如: 客戶端網址打 220.123.123.123,
但是經他查證後 base_url 是 192.16...

  $config['base_url'] = (is_https() ? 'https' : 'http').'://'. $_SERVER['HTTP_HOST'] .
                      substr($_SERVER['SCRIPT_NAME'], 0, strpos($_SERVER['SCRIPT_NAME'],                         basename($_SERVER['SCRIPT_FILENAME']))); 


我用 $_SERVER['HTTP_HOST'] 來做,這樣就沒問題了!

沒有留言:

張貼留言