Пренасочване към мобилна версия

Gamerz

Registered
Как да направя като някой влезе от iphone в сайта или ipod touch да го пренасочва към мобилната версия??
Благодаря предварително.
 
Направи си 2 папки, за мобилната и нормалната версия
Копирай кода по-долу.
Замести червените линкове с тези на твоите директории.
Кодът запази като начална страница (index.php)

Код:
<?php

$mobile_browser = '0';

if(preg_match('/(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone)/i',
    strtolower($_SERVER['HTTP_USER_AGENT']))){
    $mobile_browser++;
    }

if((strpos(strtolower($_SERVER['HTTP_ACCEPT']),'application/vnd.wap.xhtml+xml')>0) or 
    ((isset($_SERVER['HTTP_X_WAP_PROFILE']) or isset($_SERVER['HTTP_PROFILE'])))){
    $mobile_browser++;
    }

$mobile_ua = strtolower(substr($_SERVER['HTTP_USER_AGENT'],0,4));
$mobile_agents = array(
    'w3c ','acs-','alav','alca','amoi','audi','avan','benq','bird','blac',
    'blaz','brew','cell','cldc','cmd-','dang','doco','eric','hipt','inno',
    'ipaq','java','jigs','kddi','keji','leno','lg-c','lg-d','lg-g','lge-',
    'maui','maxo','midp','mits','mmef','mobi','mot-','moto','mwbp','nec-',
    'newt','noki','oper','palm','pana','pant','phil','play','port','prox',
    'qwap','sage','sams','sany','sch-','sec-','send','seri','sgh-','shar',
    'sie-','siem','smal','smar','sony','sph-','symb','t-mo','teli','tim-',
    'tosh','tsm-','upg1','upsi','vk-v','voda','wap-','wapa','wapi','wapp',
    'wapr','webc','winw','winw','xda','xda-');

if(in_array($mobile_ua,$mobile_agents)){
    $mobile_browser++;
    }
if (strpos(strtolower($_SERVER['ALL_HTTP']),'OperaMini')>0) {
    $mobile_browser++;
    }
if (strpos(strtolower($_SERVER['HTTP_USER_AGENT']),'windows')>0) {
    $mobile_browser=0;
    }


if($mobile_browser>0){
   header('Location: http://YourSite.mobi/mobile');
   } else {
   header('Location: http://YourSite.mobi/pc');
   }
 
Да, но имам проблем. Сайта ми се намира в основната директория на VPS-a, а пък мобилната версия се намира в папка mobile, като има под-домейн m.site.bg иии когато въведа нещата така не става...
 
PHP:
<?php

$mobile_browser = '0';

if(preg_match('/(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone)/i',
    strtolower($_SERVER['HTTP_USER_AGENT']))){
    $mobile_browser++;
    }

if((strpos(strtolower($_SERVER['HTTP_ACCEPT']),'application/vnd.wap.xhtml+xml')>0) or 
    ((isset($_SERVER['HTTP_X_WAP_PROFILE']) or isset($_SERVER['HTTP_PROFILE'])))){
    $mobile_browser++;
    }

$mobile_ua = strtolower(substr($_SERVER['HTTP_USER_AGENT'],0,4));
$mobile_agents = array(
    'w3c ','acs-','alav','alca','amoi','audi','avan','benq','bird','blac',
    'blaz','brew','cell','cldc','cmd-','dang','doco','eric','hipt','inno',
    'ipaq','java','jigs','kddi','keji','leno','lg-c','lg-d','lg-g','lge-',
    'maui','maxo','midp','mits','mmef','mobi','mot-','moto','mwbp','nec-',
    'newt','noki','oper','palm','pana','pant','phil','play','port','prox',
    'qwap','sage','sams','sany','sch-','sec-','send','seri','sgh-','shar',
    'sie-','siem','smal','smar','sony','sph-','symb','t-mo','teli','tim-',
    'tosh','tsm-','upg1','upsi','vk-v','voda','wap-','wapa','wapi','wapp',
    'wapr','webc','winw','winw','xda','xda-');

if(in_array($mobile_ua,$mobile_agents)){
    $mobile_browser++;
    }
if (strpos(strtolower($_SERVER['ALL_HTTP']),'OperaMini')>0) {
    $mobile_browser++;
    }
if (strpos(strtolower($_SERVER['HTTP_USER_AGENT']),'windows')>0) {
    $mobile_browser=0;
    }


if($mobile_browser>0){
   header('Location: http://YourSite.mobi/mobile');
   exit;
   }
// от тук надолу слагаш кода за версията за PC ;)
 
Е надолу си слагаш самият сайт за pc.
Така ако се влиза през телефон ще те пренасочи към мобилна версия.
А ако е от pc просто надолу ще ти зареди страницата.
Да речем слагаш надолу:

HTML:
<html>
<head>
<title> PC version </title>
</head>
<body>
text
</body>
</html>
 
Всичко е ок вече, но във футъра на мобилната версия има бутон "пълен сайт" ако някой потребител иска да го преглежда в пълната му версия, го пренасочва към мобилната отново... има ли начин това да се оправи?
 
Сещам се за един начин.
Да речем към линка на пълната ще сложиш едно ?ref=no

А кода по-горе ще проверяваш да речем:

PHP:
<?php
if (!isset($_GET['ref']) or $_GET['ref'] != "no")
{
$mobile_browser = '0';



if(preg_match('/(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone)/i',

    strtolower($_SERVER['HTTP_USER_AGENT']))){

    $mobile_browser++;

    }



if((strpos(strtolower($_SERVER['HTTP_ACCEPT']),'application/vnd.wap.xhtml+xml')>0) or 

    ((isset($_SERVER['HTTP_X_WAP_PROFILE']) or isset($_SERVER['HTTP_PROFILE'])))){

    $mobile_browser++;

    }



$mobile_ua = strtolower(substr($_SERVER['HTTP_USER_AGENT'],0,4));

$mobile_agents = array(

    'w3c ','acs-','alav','alca','amoi','audi','avan','benq','bird','blac',

    'blaz','brew','cell','cldc','cmd-','dang','doco','eric','hipt','inno',

    'ipaq','java','jigs','kddi','keji','leno','lg-c','lg-d','lg-g','lge-',

    'maui','maxo','midp','mits','mmef','mobi','mot-','moto','mwbp','nec-',

    'newt','noki','oper','palm','pana','pant','phil','play','port','prox',

    'qwap','sage','sams','sany','sch-','sec-','send','seri','sgh-','shar',

    'sie-','siem','smal','smar','sony','sph-','symb','t-mo','teli','tim-',

    'tosh','tsm-','upg1','upsi','vk-v','voda','wap-','wapa','wapi','wapp',

    'wapr','webc','winw','winw','xda','xda-');



if(in_array($mobile_ua,$mobile_agents)){

    $mobile_browser++;

    }

if (strpos(strtolower($_SERVER['ALL_HTTP']),'OperaMini')>0) {

    $mobile_browser++;

    }

if (strpos(strtolower($_SERVER['HTTP_USER_AGENT']),'windows')>0) {

    $mobile_browser=0;

    }





if($mobile_browser>0){

   header('Location: http://YourSite.mobi/mobile');

   exit;

   }
}
// от тук надолу слагаш кода за версията за PC ;)

И така няма да прави проверката.
Но ще трябва да направиш всички страници да са с ?ref=no
Или ако имаш и други гет параметри просто ще сложиш след другите &ref=no

Поне за друг вариянт не се сещам.
Или освен някаква сесия или бисквитка да се създава и да не прави проверката.
 

Back
Горе