Фрилансеры предложат решение вашей задачи уже через несколько минут!

Публикация заказа на фриланс бирже не займет много времени.

3 года назад
Алексей М.
45 лет, Россия
12 лет в сервисе
Был онлайн 5 месяцев назад
3 года назад

Здравствуйте! Раньше были города в виде субдоменов, а теперь в виде папок на главном домене (реально они и раньше папками были, но через директивы в htaccess выводились поддоменами, включай мобильный поддомен).
Есть две части кода:

 /*
 * Этот код вставляется в начало Мобильной версии сайта.
 */
 // Основной домен, куда будет перекидывать по ссылке "на полную версию", если мы пришли прямо на мобильную,
 // а не через редирект с основного
 $main_domen = 'mydomain.ru';    $request = $_SERVER["REQUEST_URI"];    $delimiter = (empty($_SERVER["QUERY_STRING"])) ? '?' : '&';
    $request = str_replace('m/','',$request);
 // Если только что пришли с редиректа, записываем в куки откуда нас редиректило
 if (isset($_GET["from"])) {
 $ttl = 604800;        $href = $_GET["from"];
 setcookie("from", $_GET["from"], time()+$ttl);
 }
 // Тут формируется ссылка "На полную версию сайта" - нужно указать откуда (с какого поддомена) пришли.
 if (isset($_GET["from"])) {                    $request = str_replace('&from='.$href,'',$request);            $request = str_replace('?from='.$href,'',$request);
  // Читаем с get, если только что перешли            //$href = "https://".$href.$request.$delimiter."from_mobile=true";
  $anchor = '<li><a href="https://'.$_GET["from"].$request.$delimiter.'from_mobile=true">Полная версия сайта <span>></span></a></li>';
 } else {
 if($_COOKIE["from"]) {
  // читаем с куки, если перешли и походили по страницам
  $anchor = '<li><a href="https://'.$_COOKIE["from"].$request.$delimiter.'from_mobile=true">Полная версия сайта <span>></span></a></li>';
 } else {
  // пришли напрямую на m.site.ru, ни куки ничего нету, потому site.ru придется вставить руками.
  $anchor = '<li><a href="https://'.$main_domen.$request.$delimiter.'from_mobile=true">Полная версия сайта <span>></span></a></li>';
 }
 }

и
    /*
     * Этот код вставляется в начало основного сайта и поддоменов НЕ мобильной версии
     */

    include('Mobile_Detect.php');

    $detect = new Mobile_Detect;

    // Хост с мобильной версией (вписать свою)
    $mobile_host = 'm.mydomain.ru';

    $uri_request = $_SERVER["REQUEST_URI"];

    if(empty($_SERVER["HTTP_X_FORWARDED_HOST"]))
        $http_host = $_SERVER["HTTP_HOST"];
    else
    {
        $http_host    = $_SERVER["HTTP_X_FORWARDED_HOST"];
        $uri_city     = str_replace('.mydomain.ru','',$_SERVER["HTTP_X_FORWARDED_HOST"]);
        $uri_request  = str_replace($uri_city.'/','',$_SERVER["REQUEST_URI"]);
    }


    // Проверяем наличие GET-переменных в запросе
    $delimiter = (empty($_SERVER["QUERY_STRING"])) ? '?' : '&';

    // Формируем URL для редиректа
    $redirect = "http://$mobile_host".$uri_request.$delimiter."from=".$http_host."&srcity=".$srcity;
    $location = 'Location: '.$redirect;


    // Проверяем что мобильный, но не планшет
    if ($detect->isMobile() && !$detect->isTablet()) {
    //if (true && !$detect->isTablet()) {

        // Сначала проверим, не пришли ли с мобайл сайта по ссылке (get ?from_mobile=true),
        // Если да - создадим (обновим) куки.
        if ($_GET["from_mobile"]) {
            $ttl = 604800;
            setcookie("from_mobile", 'true', time()+$ttl);

        // Если пришли не по прямой ссылке, проверим нету ли у нас куки, что мы раньше приходили с мобайл сайта,
        // Если нет - делаем редирект.
        } else if (!isset($_COOKIE["from_mobile"])) {
            header($location);
        }
    }
Сейчас надо чтобы как и раньше все работало только не надо учитывать с какого поддомена произошел редирект на мобильный субдомен. Но если возможно запомнить папку (соответствует городу) и переходить туда при клике на "переход на полную версию сайта".

Выбранный исполнитель
Вадим Катернюк
23 года, Украина
5 лет в сервисе
Был онлайн 2 месяца назад
3 года назад

$5

1 день

Отзыв заказчика
Доволен сотрудничеством. Проект небольшой, но все равно сделан быстро и качественно.
Отзыв фрилансера
Адекватный заказчик который может дать конкретное ТЗ.
Вадим Катернюк
23 года, Украина
5 лет в сервисе
Был онлайн 2 месяца назад
3 года назад
Андрей В.
49 лет, Беларусь
7 лет в сервисе
Был онлайн 3 года назад
3 года назад

Другие заказы в категории «Веб-программирование»

Здесь заказчик и фрилансеры могут обсуждать заказ до начала его выполнения.
Фрилансеры могут участвовать в обсуждении только после подачи заявки.
Здесь заказчик будет контролировать выполнение заказа и общаться с исполнителем.
Доступ к этому разделу имеют только заказчик и выбранный исполнитель.
Все материалы этого раздела закрыты от поисковых систем.