Как у вас организованна архитектура это ваша история, если вы считаете ее правильной то так оно и есть, у меня приложение организованна на основе модулей, которые имеют два шаблона один для обычной версии другой для мобильной, для мобильной версии будет использоваться соответствующий шаблон.
у вас какое окружение настроено? переведите в режим разработки, для того чтобы стали видны ошибки вместо белого экрана define('ENVIRONMENT', 'development');
писал по памяти поэтому забыл что в конфиге роутинга ничего не известно о контроллере который нужен для глобального объекта CI, ок тогда так: $user_agent =& load_class('user_agent', 'Libraries');
должно работать так:
1. Добавить библиотеку mobile_detect https://github.com/serbanghita/Mobile-Detect/blob/... которая будет определять устройство примерно так
$detect = $this->mobile_detect;
$mobile = $detect->isMobile() or $detect->isTablet();
2. если определено как мобильный клиент то: использовать определенные контроллеры, я же использую мобильные шаблоны как для сайта так и для модулей.
3. в index.php добавить
if( isset($_GET['nomobile']) ){
setcookie('nomobile','1',time()+3600*24,'/');
$_COOKIE['nomobile'] = 1;
}
define('NOMOBILE',isset($_COOKIE['nomobile']));
это на тот случай если с мобильного клиента захотят полную версию сайта
4. установить в контроллере редирект на мобильный урл при проверке NOMOBILE!=1 and ($detect->isMobile() or $detect->isTablet()