Есть ли простой способ создания субдоменов на codeigniter, например api.site.com?
Подход, который вы принимаете, зависит от того, насколько отличается субдомен от основного сайта. Если они очень похожи и будут использовать одну и ту же кодовую базу:
$config['base_url'] = 'http://'.$_SERVER['HTTP_HOST'].'/';
Если вам нужны разные настройки для разных поддоменов, вы можете создать файл конфигурации следующим образом:
switch($_SERVER['HTTP_HOST']){ case 'www.example.com': // settings specific to www subdomain $config['foo'] = 'bar'; break; case 'apl.example.com': // settings specific to apl subdomain $config['foo'] = 'baz'; break; }
Другой подход будет включать настройку отдельной папки приложения для субдомена, но указание на ту же системную папку. Если вы упорядочиваете файловую систему следующим образом:
example.com common system application www htdocs application apl htdocs application
Затем вы можете указать файл index.php в каждой папке htdocs в общем / системном каталоге. Вы также можете поместить код, который хотите разделить между всеми поддоменами в общем / приложении и включить их из своего кода.
Вам нужно создать субдомен в вашем DNS или настроить подстановочный шаблон для работы любого субдомена.
Как только у вас это работает, я думаю, что это случай переключения base_url
в ваш файл конфигурации.
if ($_SERVER['SERVER_NAME'] == "api.blah.com") { $config['base_url'] = "http://api.blah.com/"; } else { $config['base_url'] = "http://www.blah.com/"; }