Здесь много вариантов от очень простого до безумного комплекса:
Легко
$config['base_url'] = 'http://'. $_SERVER['HTTP_HOST'].'/';
Это поддерживает:
Комплекс
$config['base_url'] = isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) == 'on' ? 'https' : 'http';
$config['base_url'] .= '://'. $_SERVER['HTTP_HOST'];
$config['base_url']l .= str_replace(basename($_SERVER['SCRIPT_NAME']), '', $_SERVER['SCRIPT_NAME']);
Это поддерживает:
Потенциально безумный
Этот очень похож, но сохраняет ваш config.php в чистоте, предлагаетОткат в случае сбоя HTTP_HOST дает вам константу для использования по всему сайту и может дать вам относительный URI к BASEPATH и APPPATH от веб-корня.
Поместите это в constants.php:
/*
|--------------------------------------------------------------------------
| Docment root folders
|--------------------------------------------------------------------------
|
| These constants use existing location information to work out web root, etc.
|
*/
// Base URL (keeps this crazy sh*t out of the config.php
if(isset($_SERVER['HTTP_HOST']))
{
$base_url = isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) == 'on' ? 'https' : 'http';
$base_url .= '://'. $_SERVER['HTTP_HOST'];
$base_url .= str_replace(basename($_SERVER['SCRIPT_NAME']), '', $_SERVER['SCRIPT_NAME']);
// Base URI (It's different to base URL!)
$base_uri = parse_url($base_url, PHP_URL_PATH);
if(substr($base_uri, 0, 1) != '/') $base_uri = '/'.$base_uri;
if(substr($base_uri, -1, 1) != '/') $base_uri .= '/';
}
else
{
$base_url = 'http://localhost/';
$base_uri = '/';
}
// Define these values to be used later on
define('BASE_URL', $base_url);
define('BASE_URI', $base_uri);
define('APPPATH_URI', BASE_URI.APPPATH);
// We dont need these variables any more
unset($base_uri, $base_url);
В вашем config.php вы можете просто использовать:
$config['base_url'] = BASE_URL;
Это поддерживает:
(Да, это тот же список, что и комплексметод).
Это должно привести к тому, что ваше приложение будет работать практически везде, где вы его поместили, но пока оно не поддерживает URL-адреса / ~ userdir.