Мобильная версия сайта с использованием CodeIgniter

Я хочу создать мобильную версию своего веб-сайта в CodeIgniter.

Я хочу перенаправить свой полный веб-сайт на m.example.com

Никаких изменений в контроллерах не будет, ни в представлениях, ни в моделях. Оба будут одинаковыми.

Я не хочу изменять свой файл .htaccess. Любые возможные решения для этого?

Solutions Collecting From Web of "Мобильная версия сайта с использованием CodeIgniter"

Класс user agent имеет функцию;

$this->agent->is_mobile(); 

Вы можете использовать это в конструкции вашего базового контроллера (контроллеров), чтобы проверить, является ли мобильным.

Вместо того, чтобы переписывать свой код повсюду, вы можете просто загрузить другую папку просмотра. По сути, вы можете просто загрузить CodeIgniter другое представление с тем же именем из другой папки каждый раз, когда вы используете $ this-> load-> view ("xxx"). Во-первых, создайте новую папку в своей папке просмотра / mobile и просто создайте представления с теми же точными соглашениями об именах, и она загрузит представление соответственно, расширив класс Loader.php.

Независимо от того, выполняете ли вы отзывчивый дизайн или собираетесь ли вы создать приложение для iPhone, которое ищет мобильную версию вашего сайта, вроде того, что делает facebook, тогда вы можете просто переопределить класс Loader в основной папке. В папке application / core создайте файл MY_Loader.php и поместите его в этот файл.

Моя выглядит следующим образом

 <?php if (! defined('BASEPATH')) exit('No direct script access allowed'); class MY_Loader extends CI_Loader { //overides existing view function function view($view, $vars = array(), $return = FALSE) { $CI =& get_instance(); $CI->load->library("user_agent"); if($CI->agent->is_mobile()){ $view = 'mobile/'.$view; } return $this->_ci_load(array('_ci_view' => $view, '_ci_vars' => $this->_ci_object_to_array($vars), '_ci_return' => $return)); } } ?> 

Могущественный веб-дизайн, на мой взгляд, беспорядок, но это все еще отлично отделяет код для вас, при этом все еще можно использовать ваши контроллеры и модели в унисон.

Надеюсь это поможет. Вот так я буду это делать :)!

Почему перенаправление? Если все одно и то же, почему бы не взглянуть на отзывчивый веб-дизайн?

У 24ways.org есть несколько хороших статей для него:

 http://24ways.org/2012/responsive-responsive-design/ http://24ways.org/2012/responsive-images-what-we-thought-we-needed/ 

Хорошо, я нашел другое решение. Я использовал предварительный контроллер hooks, и я перенаправляю www субдомен на m поддомен.