Помогите пожалуйста с роутером :)

Статус: Офлайн
Реєстрація: 04.07.2008
Повідом.: 677
Доброе время суток, помогите решите проблему.Суть:
Есть сайт:
spam.spam.logan.mysite.ru
Нужно:
Отсекать все до третьей позиции то есть должно остатся logan.mysite.ru
Это я решил с помощью explode().
Проблема такая нужна мобильная версия сайта.
Варианты ее включения :
1. Набрать в домене(Адр.строке) варианты:
m.logan.mysite.ru
m.mysite.ru
logan.m.mysite.ru - Решено путем переставления и превращения в m.logan.mysite.ru
и тд.
А если не моб версия то все верхнее только без m.
2. Перейти по ссылке и поставить куку, то есть уже нужно проверять чтобы кука совпадала с доменом, то есть чтобы было m. и кука должна стоять в режиме true.
3.mobile_device_detect.php - Класс который определяет устройства, потом который передает управление в домен (Добавляет m.) а также ставит куку.
Грубо говоря в контакте прекрасная реализация насчет моб.версии
что saddsdsa.asdffds.m.******* что asd.m.******* Все работает у них правильно.
Проблема такова что я замучался с циклической переадресацией так как я парсю реферер, и посылаю на новую страницу. Но как мне реализовать ключ который бы смотрел когда нужно переадресовывать а как нет.Вот кусок кода:
PHP:
    if (($url_path[count($url_path) - 3] == "m" || $url_path[count($url_path) - 3] =="M")&& isset($url_path[count($url_path) - 4]))//logan.m.mysite.ru/...
    {   
      
        if($url_path[count($url_path) - 4]=="m" || $url_path[count($url_path) - 4]=="M")
         { 
            $link = "https://$mobile" .$url_path[count($url_path) - 3] ."." . $url_path[count($url_path) -
                    2] . "." . $url_path[count($url_path) - 1] . $_SERVER['REQUEST_URI'];
                   
         }
        else
        { 
            $link = "https://$mobile" .$url_path[count($url_path) - 3] ."." .$url_path[count($url_path) - 4]."." . $url_path[count($url_path) -
                    2] . "." . $url_path[count($url_path) - 1] . $_SERVER['REQUEST_URI'];//return https://m.logan.mysite.ru        }
    }
$url_path - Массив после эксплойда
$mobile - Там хранится "m."
Подскажите реализацию такого.
Просто Даже если у меня и чуть получается отправить пользователя на обновленный Урл то данные то есть m Подставляется только после нажатие F5
Переадресация такова:
PHP:
function redirect($url)
{
    if (!headers_sent()) { //If headers not sent yet... then do php redirect
    $redirect_link=iconv('windows-1251', 'utf-8', $url);
$redirect_link=rawurlencode($url);
$redirect_link=str_replace('%2F', '/', $url);
$redirect_link=str_replace('%3A', ':', $url);
$redirect_link=str_replace('%3F', '?', $url);
$redirect_link=str_replace('%3D', '=', $url);
$redirect_link=str_replace('%26', '&', $url);
$redirect_link=str_replace('%23', '#', $url);
$redirect_link=str_replace('%3E', urlencode('%3E'), $url);
header('Location: '.$url.'', 301);
 
        exit;
    } else { //If headers are sent... do java redirect... if java disabled, do html redirect.
        echo '<script type="text/javascript">';
        echo 'window.location.href="' . $url . '";';
        echo '</script>';
        echo '<noscript>';
        echo '<meta http-equiv="refresh" content="0;url=' . $url . '" />';
        echo '</noscript>';
        exit;
    }
} //==== End -- Redirect
Просто не могу собратся с мыслями уже неделю грызу строчки кода :(
Может у кого то есть какие либо мысли, если кто то меня понял :)Заранее всем спасибоу!:yahoo:



Вот функция
PHP:
function url_route($url,$mobile,$user_login)//for mobile and desktop route
{
   
       $link = $_SERVER["HTTP_REFERER"];
       
       $url_path = explode('.',$url); 
       if($url_path[count($url_path) - 3]=="m"   ||(isset($mobile) && !empty($mobile) && $mobile==true ))
      {
        $mobile = "m.";
          
      }else $mobile = false; 
    
    if (($url_path[count($url_path) - 3] == "m" || $url_path[count($url_path) - 3] =="M")&& !isset($url_path[count($url_path) - 4]))//m.mysite.ru/...
    { 
        echo  $mobile;exit;// MiNiDEBUG
        if($mobile==false && isset($url_path[count($url_path) - 3])){ 
          $link = "https://" .$url_path[count($url_path) -
                    2] . "." . $url_path[count($url_path) - 1] . $_SERVER['REQUEST_URI'];}        //return https://m.mysite.ru/... 
         else           $link=false;
    }   
    return $link;
}

А еще одна проблема очень долго думает :)
 
Останнє редагування:
OMG. Роутер, да детка настраивай мой роутер.:іржач:

Ты давай определяйся, что тебе конкретно нужно. Если подключить определенный стиль при заходе с мобильного девайся, то это делается с помощью сss без всякой моз***бки.

Код:
    <link rel="stylesheet" href="site.css" media="screen" />
    <link rel="stylesheet" href="mobile.css" media="handheld"/>

Или что там у тебя с ним происходит?
 
вместо того чтобы грызть строчки кода почитал бы как это реализовать в apache httpd или nginx.
 
Назад
Зверху Знизу