За последние 24 часа нас посетил 22821 программист и 1273 робота. Сейчас ищут 742 программиста ...

Подскажите с правильным редиректом сайта

Тема в разделе "PHP для новичков", создана пользователем vfiuchcikicshuusrch, 1 окт 2019.

  1. vfiuchcikicshuusrch

    vfiuchcikicshuusrch Новичок

    С нами с:
    1 окт 2019
    Сообщения:
    9
    Симпатии:
    0
    Адрес:
    I-Town
    Хочу настроить мобильную версию сайта.
    Не получается сделать редирект сайта на мобильную версию
    сайт.ру -> сайт.ру/мобильный

    собственно сам редирект работает. но нужно теперь каждую ссылку из поисковиков переводить на версию мобильного сайта, если заход с мобильника. это вызывает бесконечный редирект %)

    т.е. нужно при переходе на сайт.ру/статья1 перенаправиться на сайт.ру/мобильный/статья1

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

    редиректы пробывал разные и php и javascript - работает одинаково.

    интересен опыт других, как можно это реализовать ?!
     
  2. Roman __construct

    Roman __construct Активный пользователь

    С нами с:
    27 апр 2019
    Сообщения:
    1.270
    Симпатии:
    112
  3. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.555
    Симпатии:
    1.754
    @vfiuchcikicshuusrch, покажите код. Хотя вообще, сейчас стараются вместо мобильной версии делать адаптивную вёрстку
    Интересно, как ты через mod_rewrite собрался опрелелять мобилки?
     
  4. vfiuchcikicshuusrch

    vfiuchcikicshuusrch Новичок

    С нами с:
    1 окт 2019
    Сообщения:
    9
    Симпатии:
    0
    Адрес:
    I-Town
    юзаю nginx
    в nginxe есть вариант рерайта. но не понимаю как оно работать должно.

    для определения мобилок использую библиотеку Mobile_Detect.php
    работает хорошо.

    вот таким кодом пытаюсь всё наладить. временно использую редирект на /m/, чтобы хотябы без чпу кидало на сайт.
    Код (Text):
    1. require_once "include/Mobile_Detect.php";
    2. $detect = new Mobile_Detect();
    3. $mobilesite = $detect->isMobile();
    4. if ($mobilesite) {
    5.     $new_uri = str_replace('/m', '',  $_SERVER['REQUEST_URI']);
    6.        $new_uri = str_replace('/', '', $new_uri);
    7.     header('Location: '.BLOG_URL.'m/' . $new_uri, );
    8. #    header('Location: /m/');
    9.     exit(0);
    10. }
     
  5. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.555
    Симпатии:
    1.754
    Ну так добавь проверку "и мы уже не на мобильной версии" :) На твою /m
     
  6. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    Никак. Это уже не актуально. В какой берлоге вы «прозябали» последние годы? :)
     
  7. vfiuchcikicshuusrch

    vfiuchcikicshuusrch Новичок

    С нами с:
    1 окт 2019
    Сообщения:
    9
    Симпатии:
    0
    Адрес:
    I-Town
    @miketomlin меня устраивает то, что есть.
    я не профессиональный вэб программист. мне нужно пофиксить свой сайт, чтобы работал. технологии не важны.
    я даже не любитель в области вэб программирования.

    @mkramer хм... попробую. интересно :)
     
  8. Roman __construct

    Roman __construct Активный пользователь

    С нами с:
    27 апр 2019
    Сообщения:
    1.270
    Симпатии:
    112
    точно так же, как и печь пирожки - никак :)

    mod_rewrite для это не предназначен
     
  9. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    Были когда-то умельцы, кот. лепили карту для mod_rewrite под User-Agent или еще ХЗ что, но все вымерли :)

    Ты спросил, я ответил.
    --- Добавлено ---
    Причем тест мобильной ветки поставьте на первое место, чтобы понапрасну не дергать isMobile. А лучше оберните всю показанную мобильную лабуду или сделайте вложенное ветвление.
     
  10. vfiuchcikicshuusrch

    vfiuchcikicshuusrch Новичок

    С нами с:
    1 окт 2019
    Сообщения:
    9
    Симпатии:
    0
    Адрес:
    I-Town
    есть файл init.php:
    Код (Text):
    1. error_reporting(7);
    2. ob_start();
    3. header('Content-Type: text/html; charset=UTF-8');
    дальше идет перечисление definов...

    главный index
    index.php - туда встроил мобайл детект, сразу перекидывает на мобильную ветку сайта. после header стоит exit() чтобы дальше не выполнялся код
    если открылся на ПК, то index.php выполняется до конца загружая обычный шаблон и init.php.

    после редиректа на мобильную ветку выполняется m/index.php
    в m/index.php первым наперво выполняется init.php.

    вобщем. как только не пробовал, если выстраивается правильная логика, то вылетает в бесконечный редирект и всё...

    проще сайт в "адаптивный" переписать ? %)
     
  11. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.555
    Симпатии:
    1.754
    Блин, чувак, я тебе разжевал, только в рот положить осталось. Ладно, кладу
    PHP:
    1. if (strpos($_SERVER['REQUEST_URI'], '/m/') !== false) {
    2.    // Мы на мобильной версии сайта, редиректить не надо
    3. }
     
  12. vfiuchcikicshuusrch

    vfiuchcikicshuusrch Новичок

    С нами с:
    1 окт 2019
    Сообщения:
    9
    Симпатии:
    0
    Адрес:
    I-Town
    @mkramer
    чувак, это не помогает! :) я первым делом это проверил, только использовал substr первые 3 символа, тот же бесконечный редирект.
    если переходишь просто на /m/ то всё ок. бесконечный редирект когда ссылка на статью идет т.е. url/blog1 -> url/m/blog1

    вот мой код...
    Код (Text):
    1. $surl = substr($_SERVER['REQUEST_URI'], 0, 3);
    2.  
    3. if (!$surl == '/m/') {
    4.  
    5.     ### определение мобильного устройства и редирект на мобильный сайт
    6.     require_once "include/Mobile_Detect.php";
    7.     $detect = new Mobile_Detect();
    8.     $mobilesite = $detect->isMobile();
    9.     $new_uri = str_replace('/m', '', $_SERVER['REQUEST_URI']);
    10.     $new_uri = str_replace('/', '', $new_uri);
    11.  
    12.     header('Location: /m/' . $new_uri );
    13.     exit(0);
    14. }
    может быть проблема где то в настройках вэб сервера или дальше в коде сайта ?!.. если это должно работать.
     
    #12 vfiuchcikicshuusrch, 1 окт 2019
    Последнее редактирование: 1 окт 2019
  13. ElisDN

    ElisDN Активный пользователь

    С нами с:
    13 фев 2018
    Сообщения:
    605
    Симпатии:
    130
    if ($surl !== '/m/')
     
  14. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.752
    Симпатии:
    1.322
    Адрес:
    Лень
    trim никто не отменял.
     
  15. Roman __construct

    Roman __construct Активный пользователь

    С нами с:
    27 апр 2019
    Сообщения:
    1.270
    Симпатии:
    112
    Переписать в адаптивный не проще. Но намного правильней. В т.ч. и для SEO.

    Проще кому-нить здесь заплатить за полчаса-час работы - пусть настроят да и всё.

    Это если говорить о "проще"))
     
  16. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    Чувак, если не сечешь в пыхе, лучше попроси кого-нибудь это сделать за тебя.

    Что по-твоему означает !$surl? Ты, видимо, наивно полагал, что сравнение должно выполняться первым. И когда я пишу про вложенное ветвление, я надеюсь увидеть его, а не ХЗ что ;)
    --- Добавлено ---
    WTF :mad:
    Тут url – это что? Надеюсь, имя хоста. Иначе ты впендюрил компонент m в середину пути, когда он по идее должен быть префиксом. И раз у тебя адресация без трэйлинг слэшей, с главной/мобильной главной могут быть проблемы из-за условия с '/m/' ;)
     
  17. vfiuchcikicshuusrch

    vfiuchcikicshuusrch Новичок

    С нами с:
    1 окт 2019
    Сообщения:
    9
    Симпатии:
    0
    Адрес:
    I-Town
    @miketomlin
    чувак, !$url я переписал как сказал чувак mkramer в посту 11, эффекта никакого это не дало.
    url это хост, как ты правильно подметил (т.е. dns имя сайта я хз куда ещё понятнее, и это не имеет значения, в локальной сети могу и по имени "url" обратится к хосту... что это изменит ? странно, что если ты сечешь в пыхе, тебя это вообще смущает)))
    да. мне нужно вставить /m/ в середину пути. и да с этим проблемы. и я понимаю откуда они берутся, но хз как их обойти. поэтому - всё!

    перевожу сайт типа в адаптивный %) это оказалось проще!.

    п.с. чуваки! у вас тут чувак - это типа нуб ? или вы ко всем так обращаетесь ?.
    я создал тему в разделе для новичков, естественно я не позиционирую себя как "секу в пыхе" %) что б.. за вопросы ?! %) никому платить не буду, это того не стоит вообще.
    всем спасибо, за попытки помочь. логичнее всё таки, как и сказали выше, использовать адаптивный сайт.
     
  18. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    Он норм. сказал, ты неправильно переписал.

    Я тебе пояснил, почему это меня смущает. И, как выясняется, оч. даже по делу, потому что это и есть осн. твоя проблема:
    Обращение я позаимствовал у тебя. Почему тебе это можно, а мне нельзя? :)

    С оплатой сразу было все понятно. Тут очевидно, что ты из той категории, кто готов с легкостью сломать свой сайт, чем кому-то заплатить копейку. Благодарить за «попытки помочь» этой категории граждан также особо свойственно, когда они не получают требуемое на халяву.
     
  19. vfiuchcikicshuusrch

    vfiuchcikicshuusrch Новичок

    С нами с:
    1 окт 2019
    Сообщения:
    9
    Симпатии:
    0
    Адрес:
    I-Town
    @miketomlin много воды.
    тему почитай сначала, чтобы понять почему мне можно.
     
  20. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    P.S. Если чЁ, я не про себя. Если мне с этого форума перепадает раз в год пару баксов на пирожок, это хорошо. В основном «работаю» бесплатно.
    --- Добавлено ---
    Если бы ты сам меньше писал не по делу, было бы меньше реакции. Успехов.
     
  21. vfiuchcikicshuusrch

    vfiuchcikicshuusrch Новичок

    С нами с:
    1 окт 2019
    Сообщения:
    9
    Симпатии:
    0
    Адрес:
    I-Town
    я его код и использовал, а то что скинул посмотреть это было до того. тему читай. надоело препираться. либо ты придуриваешься...

    выше же написал, что уже всё "адаптивным" стало без всяких лишних ссылок на /m/.