Переключатель Classic View / Mobile View? - PullRequest
3 голосов
/ 07 февраля 2011

Я создаю версию веб-сайта моей компании с помощью фреймворка jQuery Mobile.Хотя было бы довольно просто выполнить перенаправление JavaScript, чтобы пользователи мобильных устройств заходили на наш мобильный сайт, я не хочу помешать людям просматривать классический сайт.

Какой лучший способ сделать это?

Наш обычный веб-сайт:

us.companyname.com /

Наш мобильный веб-сайт будет по адресу:

us.companyname.com / mobile

Существуют некоторые ограничения, так как мы не храним доменное имя, как это делают наши британские коллеги, поэтому что-то делается на уровне companyname.comТребуется немного терпения.По сути, если кто-то из Северной Америки придет на companyname.com, он будет автоматически перенаправлен на us.companyname.com.

У меня есть полный доступ к нашему веб-сайту (написанному прежде всего на PHP & Expression Engine, доЯ был здесь), и я свободен делать что угодно, если я ничего не испорчу.

Ответы [ 2 ]

5 голосов
/ 07 февраля 2011

Во-первых, такие вещи я бы не делал с Javascript / Query, потому что, если пользователь не активировал js? Лучше сделать это на стороне сервера.

Примерно так:

$mobile = array("IPHONE", "IPAD");
$flagMobileVersion = false;
if($_SESSION['version']!="mobile"){ //happens only at first visit
for($i=0;$i<=count($mobile)-1;$i++){
    if(!strrpos(strtoupper($_SERVER['HTTP_USER_AGENT']), $mobile[$i]))
    {
        $flagMobileVersion = true;
        break;
    }
}

if($flagMobileVersion) {
$_SESSION['version'] = "mobile";
Header("www.mydomain.net/mobile"); //on first Visit
}
0 голосов
/ 07 февраля 2011

Хотелось бы что-то вроде этой работы:

Все, что вам нужно сделать по-другому, - это обернуть код перенаправления window.location на главной странице внутри оператора if, который гарантирует, что флаг noredirect не установлен в true. Единственной проблемой будет изоляция строки запроса noredirect, но этот вопрос переполнения стека может помочь.

...