Редирект на мобильную версию сайта htaccess
Мобильное перенаправление с помощью htaccess
у меня есть сайт под названием
у меня есть мобильный веб-сайт под названием
Я хочу использовать htaccess для автоматического перенаправления основного URL-адреса веб-сайта на мобильную версию..
однако в мобильной версии есть ссылка, которая указывает на основной веб-сайт под названием
когда я нажимаю на логотип на главной странице на сайте одной к
Я не хочу, чтобы пользователю было разрешено вернуться на мобильный случайно, нажав на логотип на главной странице. Как я могу сделать это через htaccess без JavaSCript.
если нет, я открыт для альтернативных вариантов.
редактировать
Я думаю, что в настоящее время я собираюсь использовать это для зондирования мобильного перенаправления через htaccess
9 ответов
Я проверил бит и куски следующего, но не полный набор правил в целом, поэтому, если у вас возникнут проблемы с ним, дайте мне знать, и я покопаюсь немного больше. Однако, предполагая, что я все правильно понял, вы можете попробовать что-то вроде следующего:
решение Тима Стоуна находится на правильном пути, но его начальный перезаписчик и его имя файла cookie в конечном состоянии отличаются, и вы не можете написать и прочитать файл cookie в одном запросе.
вот окончательный рабочий код:
Я еще больше изменил решение Тима Стоуна. Это позволяет cookie находиться в 2 состояниях, 1 для мобильного и 0 для полного. Когда мобильный cookie установлен в 0, даже мобильный браузер перейдет на полный сайт.
спасибо Тим Стоун, науну и Кевин Бонд, эти ответы действительно помогли мне. Вот моя адаптация вашего кода. Я добавил функциональность для перенаправления обратно на рабочий стол с сайта m.example.com в случае, если пользователь не посещает сайт с мобильного устройства. Кроме того, я добавил переменную среды для сохранения http / https-запросов:
возможно, есть лучший способ определить, является ли устройство настольным устройством, я просто отрицал обнаружение устройства сверху.
и мне интересно, обнаруживаются ли таким образом все мобильные устройства. В Тим камень и код naunu это часть гораздо большего.
аналогично, если вы хотите перенаправить в подпапку вместо поддомена, сделайте следующее:
Я знаю, что это не прямой ответ на вопрос, но кто-то (как я), может наткнуться на этот вопрос и интересно, как это способ будет выполнено также.
Как найти и убрать скрытый редирект для мобильных устройств на сайте
В статье:
Редирект или переадресация посетителя на другую страницу — это нормально. Например, у сайта example.com может быть мобильная версия на субдомене m.example.com. Если пользователь на смартфоне перейдет на сайт example.com в выдаче, его автоматически перекинет на мобильную версию.
Но есть и другой вариант, когда из-за переадресации можно потерять мобильный трафик, получить санкции от поисковиков и выпасть из индекса. Разберем, почему так может произойти и как это исправить.
Когда переадресация для мобильных становится проблемой
Иногда такой редирект отправляет пользователей смартфонов не на мобильную версию того же сайта, а на другие URL — не те, которые он выбрал в выдаче. Такое может настроить сам владелец сайта, если продает трафик, а иногда это происходит без его ведома. Возможные причины разберем ниже.
Схема такая: пользователи с компьютера и смартфона видят в результатах выдачи одинаковый адрес сайта — example.com. У пользователя, который смотрит выдачу с десктопа, все в порядке: он кликает на example.com и попадает на example.com. А пользователя, зашедшего с мобильного, перекинет на другой сайт. Например, на сервис платных подписок — это называется Wapclick-редирект.
Пользователя может переправить на страницу с предложением обновить ПО, скачать антивирус или приложение для оптимизации смартфона, установить игру, подписаться на что-то платное, например, на гороскопы или эротический контент. Часто под этим скрываются программы для фишинга или другие, угрожающие безопасности конфиденциальных данных.
Такое перенаправление пользователей на сторонние ресурсы нарушает рекомендации Google для веб-мастеров и аналогичные рекомендации Яндекса.
Аудитория как минимум теряет доверие к сайту. Сайт теряет мобильный трафик и потенциальных клиентов. Когда этот редирект заметят поисковые системы, они исключат из индекса либо отдельные страницы, либо весь сайт. Проект вернется в индекс, когда владелец удалит все рекламные скрипты, а поисковик это проверит.
Причины появления скрытого редиректа
Веб-мастер сам так настроил
Иногда веб-мастера сами настраивают переадресацию мобильных посетителей на сторонние сайты. Например, если сайт служит им для заработка на продаже мобильного трафика через партнерские программы WAP-click. Такой заработок против правил поисковиков и чреват вылетом из индекса.
Скрипт ворует трафик, веб-мастер не в курсе
Нелицензионные CMS, бесплатные виджеты и подозрительные скрипты небезопасны, через них трафик может утекать на вредоносные сайты без ведома веб-мастера. Например, это могут быть элементы для показа рекламы или монетизации контента.
Злоумышленники взломали сайт
Веб-мастер снова будет не в курсе, но трафик могут перехватить злоумышленники, которые взломали сайт и настроили редирект на нужные им площадки для воровства личных данных или денег с банковских карт.
Как понять, что на сайте скрытая переадресация для мобильных устройств
Есть несколько сигналов, по которым можно догадаться, что что-то не так с мобильным просмотром.
Послушать жалобы пользователей
Кто-то из тех пользователей, которые не смогли попасть на сайт с мобильного, найдут вас, например, в соцсетях и пожалуются. Прислушайтесь, спросите, с какого устройства посещали сайт, с мобильного интернета или WiFi, куда их в итоге перебросило.
Проверить самому — открыть сайт на смартфоне
Попробуйте сами перейти на сайт из результатов выдачи. Используйте свой смартфон и попросите знакомых.
Можно использовать эмуляторы в десктопных браузерах — Firefox, Safari, Chrome. Выбор мобильного устройства в интерфейсе разработчика в Google Chrome:
Просмотр мобильной версии
Заглянуть в Яндекс.Вебмастер и Google Search Console
Оповещение о взломе сайта и советы появятся в разделе «Проблемы безопасности» Google Search Console.
В Яндекс.Вебмастере есть аналогичная страница «Безопасность и нарушения» в разделе «Диагностика» со списком зараженных страниц, датами проверок и оценками антивируса.
Проверить сайт в сервисах
У PR-CY есть проверка вирусов онлайн в бесплатном инструменте:
Онлайн-проверка сайта на вирусы
Если вы хотите провести более полную проверку, используйте сервис Анализа сайта. Он проверит технические параметры, отношение поисковиков, оптимизацию главной и ошибки на внутренних страницах. Проверка на вирусы в него тоже встроена:
Проверка на санкции и вирусы в Анализе сайта
Посмотреть сайт в выдаче
Часто у взломанных сайтов появляется предупреждение в результатах поиска. Если вы видите похожую плашку у своего сайта, значит его взломали и поисковик это обнаружил.
Образец оповещения о взломе сайта
При переходе на такой сайт может появиться страница с информацией о взломе, блокирующая переход.
Посмотреть мобильный трафик в аналитике
Если мобильных пользователей будут перехватывать и отправлять на сторонний сайт, у вашего сайта будет сильная просадка по мобильному трафику. В Google Аналитике и Яндекс.Вебмастере проверьте динамику трафика и времени, проведенного мобильными пользователями на сайте.
В Google Analytics можно настроить специальные оповещения, чтобы вам на почту пришло письмо, если обнаружится странная ситуация с трафиком
Как настроить оповещение о существенном спаде трафика в Google Analytics:
Зайдите в Специальные отчеты — Специальные оповещения
Нажмите на Управление оповещений
Заведите новое оповещение: дайте ему удобное вам название, выберите регулярность уведомлений и укажите почту, на которую они будут приходить.
относится к мобильным устройствам и планшетам;
оповестить, если «средняя длительность сеанса»;
условие — «точно соответствует», ценность — да;
второе условие — «уменьшение процентного показателя более чем на», ценность — 50%, по сравнению с «этот день на прошлой неделе».
Выбор Управления оповещений
Если трафик просел, это не обязательно значит, что на сайте настроена скрытая переадресация для мобильных. Но такую причину можно рассматривать как одну из версий.
Что делать, если обнаружили скрытый редирект на сайте
Действия по исправлению зависят от причины, по которой появилась скрытая переадресация.
Внимание! Перед тем как что-то делать с работающим сайтом, создайте резервную копию на хостинге и проверьте, работает ли она.
Если сайт взломали злоумышленники
У вас должны быть резервные работающие копии, попробуйте восстановить сайт. Для проверки на вирусы обратитесь к хостеру, обычно хостинги предоставляют такую услугу. Проверка покажет, где вирусы и что нужно удалить.
Можно поискать код вручную, часто зловредные элементы прописывают в этих местах:
в index.php в корне сайта — обфусцированный код в конце файла, огромные строки кода легко заметить и удалить;
Обязательно обновите пароли — от хостинга, FTP, панели администратора и базы данных.
Если виноваты скрипты виджетов
Редирект на чужой сайт может работать через сторонние скрипты, плагины, шаблоны CMS, темы, другие элементы. Виноваты могут быть как новые недавно установленные плагины, так и те, которые давно стоят, но уже устарели — их могли взломать.
Если вы сами ничего не устанавливали, посмотрите историю доступов к сайту. Возможно, другие администраторы или модераторы поставили какой-то зараженный скрипт по незнанию или даже чтобы вам навредить
После каждого удаления заходите на страницу со смартфона или через эмулятор браузера, и проверяйте, остался ли редирект.
Как только вы найдете этот вредный элемент, удалите его с других страниц. Если заражен был какой-то важный плагин, проверьте актуальность версии. Напишите разработчику, возможно, он уже поправил уязвимость.
Обязательно обновите CMS и плагины до последней стабильной версии, удалите все, что вызывает подозрение и подберите лицензионные решения с официальных источников.
Если веб-мастер сотрудничает с некачественными партнерками
Еще одна причина — веб-мастер специально или неосознанно сотрудничает с фейковыми партнерскими системами. Обычно они притворяются простыми партнерками с баннерной рекламой.
Часто такие партнерки рекламируются в Яндекс.Директе и Google Ads или присылают предложения сотрудничества на почту, представляясь маркетинговыми агентствами и обещая подозрительно высокий доход. Прекращайте работу с такими партнерками и отказывайтесь от подозрительных предложений.
Как сделать, чтобы это не повторилось — защищаем сайт
Нужно поработать с безопасностью проекта, чтобы уменьшить риск повторного появления редиректа на чужой сайт.
Обновляйте версии, не ставьте пиратский софт
Если вы нашли причину утечки мобильного трафика в каком-то расширении или модуле, возможно, больше не стоит пользоваться сайтом, на котором вы его взяли. Используйте только лицензионное ПО и устанавливайте все виджеты, модули, плагины и всевозможные решения только с официальных ресурсов. Чем меньше установлено, тем лучше — вероятность уязвимости статистически меньше.
Следите за новостями и проверяйте список уязвимостей для вашей CMS, набора библиотек или фреймворка. Если вскрылась уязвимость, разработчики торопятся выпустить обновление с исправлением.
Поговорите с сотрудниками, обновляйте пароли
Для каждой площадки придумайте отдельный пароль, чтобы в случае утечки одного пароля злоумышленникам не открылся доступ ко всем вашим ресурсам.
Для панели администратора можно установить задержку ввода пароля для следующих попыток после ввода неправильного. Так злоумышленнику будет сложнее перебирать пароли к админке сайта.
Разграничивайте доступы для сотрудников и проводите с ними беседы. Если у инициативного, но не очень разбирающегося сотрудника есть доступ к админке сайта, он из добрых побуждений может установить что-то небезопасное.
Внимательнее выбирайте рекламодателей
Обещания золотых гор хоть и звучат соблазнительно, на деле оказываются приманкой для участия в фейковых партнерских программах. Аккуратно выбирайте рекламодателей, используйте Google.Adsense, Яндекс.Директ и другие проверенные варианты.
Подробно о том, какие методы взломов используют хакеры в 2021 году, мы писали в конспекте лекции «Как защитить сайт от взломов и атак в 2021».
Расскажите о своем опыте: вы сталкивались с такими редиректами? Как исправили ситуацию?
Реализация одного из вариантов мобильной версии сайта
Оговорюсь сразу, пишу для таких же непрофессионалов в сфере веб-разработки, как и я. По основному роду деятельности я фотограф. Надеюсь, кому-то поможет в аналогичной ситуации.
В определенный момент времени (откровенно говоря, очень поздний, надо было гораздо раньше сделать) озаботился я созданием мобильной версии своего сайта. Проанализировав основные способы реализации этой задачи (почитав это и это), пришел к выводу, что в моем случае (сайт фотографа) проще всего будет создать сильно урезанную отдельную версию на поддомене. Сильно вникать в подробности не буду, постараюсь осветить те моменты, на реализацию которых потратил больше всего времени.
Первую задачу с редиректом решаем следующим образом:
В htaccess полной версии добавляем код:
В htaccess мобильной версии пишем следующее:
Десктопные пользователи, пришедшие на мобильную версию (вообще говоря они туда никак не должны попадать, но на всякий случай) редиректятся на полную версию, мобильные пользователи с полной версии — на мобильную.
При это используются следующие исключения:
— при наличии в УРЛе параметра no_redirect=true (неважно у какого пользователя и на какой версии) — редирект не происходит;
— если реферером пользователя является та версия сайта, на которой он находится сейчас — редирект не происходит;
— если мобильный пользователь делает запрос к конкретному файлу на полной версии сайта — редирект не происходит.
Причина для последнего исключения очевидна, а вот первые два относятся уже ко второму пункту нашей повестки дня — возможности просматривать полную версию сайта с мобильных устройств.
Итак, предположим мобильному пользователю нужна полная версия сайта.
Что делает адекватный пользователь? В настройках браузера тыкает галку «Полная версия» и счастлив. Но. Во-первых, не все пользователи столь адекватны, а во вторых — вероятно, не во всех мобильных браузерах есть такая галочка.
Поэтому нужна ссылка. Окей, ссылку запилили. Но если мобильный пользователь по ней перейдет, его тут же снова отправит на мобильную версию сайта. Для этого мы сделали исключение для параметра no_redirect=true, и добавим его в ссылку на полную версию. Отлично, мобильный пользователь перешел на полную версию. Но если он попытается перейти на любую другую страницу сайта, его снова кинет на мобильную версию, ведь параметр no_redirect=true из урла исчезнет. Для этого нам нужно второе исключение в htaccess — если пользователь перешел по ссылке на полной версии, то на мобильную его кидать не надо (и наоборот). Данный способ я придумал сам, поэтому несколько сомневаюсь в его надежности, но сколько ни тестировал — все работает как надо.
Третий пункт. Ошибки 404 на мобильной версии.
На полной версии сайта у меня примерно 70+ страниц. Но для мобильной я сделал только самые необходимые (около 8-10). Соответственно, мобильные пользователи, придя с поисковика, часто натыкались на 404. Сперва я просто разместил там информацию, что мол, нужная страничка в полной версии, но % отказов все равно был очень высок. Поэтому я сделал ход конем: если на мобильном сайте получаем 404-ю ошибку, то редиректим пользователя на полную версию с тем же урлом, добавив незабвенный no_redirect=true. Как это сделано:
В htaccess мобильной версии:
Четвертая задача: удобство для мобильных пользователей
В принципе, там все рекомендации расписаны, подчеркну только главное — в header мобильной версии добавляем
И следим за правильным расположением и масштабированием контента.
А, ну еще в стили добавил:
Чтобы при горизонтальном просмотре сайт сильно не растягивался в ширину.
И, наконец, сеошные проблемы
В случае, если у вас каждой странице полной версии соответствует страница в мобильной, есть метки типа canonical.
Но я не стал заморачивался, и тупо запретил индексацию мобильной версии совсем.
Есть такое замечательное руководство гугла по сео-оптимизации для мобильных устройств
Основной интересующий нас момент:
На обычной странице (http://www.example.com/page-1) добавьте следующий код:
а на странице для мобильных устройств (http://m.example.com/page-1) используйте такие атрибуты:
В URL, который размещен на странице мобильного сайта и указывает на аналог этой страницы для обычных компьютеров, обязательно нужно добавить тег rel=«canonical».
Помимо этого указываем мобильность сайта в файле sitemap:
И так для каждого url.
Яндекс утверждает, что он сам распознает стандартные поддомены типа m.example.com, pda.example.com и т.п.
Для пущей надежности можно еще каждой мобильной страничке указать соответствующий доктайп:
Думаю, уж после такого комплекса мер, поисковики должны адекватно разобраться, где какая версия сайта.
Все вышенаписанное реализовано и работает. Возможно, есть косяки, неучтенные кейсы и т.д. — буду рад выслушать критику и советы. В личку могу отправить ссылку для тестирования.
Делаем мобильный редирект 3-мя способами
Недавно один человек написал мне с просьбой подсказать, как перенаправить пользователей мобильных устройств на другую страницу. Он занимается арбитражом трафика и нужно отделить «мобильных» посетителей от «немобильных» и автоматически отправить первых на адаптированный лендинг, причём сделать это с помощью JavaScript.
Делаем мобильный редирект на PHP
Суть здесь в том, что каждое устройство сообщает серверу свой т.н. User Agent («юзер-агент»). В этом юзер-агенте находится информация о данном устройстве. Соответственно, с помощью PHP мы эту информацию извлекаем и, если по ней ясно, что устройство — мобильное, делаем редирект.
У мобильных устройств существует просто куча разных юзер-агентов. Я нашёл код, где учтены, наверное, почти все эти агенты:
Вставьте код в самое начало документа, а вместо http://site.ru/mobile/ подставьте URL, на который должны улетать мобильные пользователи. Обратите внимание, что перед этим кодом не должно быть даже пробельных символов и переводов строк — таковы уж особенности редиректов на PHP.
Передача меток и субаккаунтов на мобильный лендинг с помощью PHP
Обычно при ведении рекламных кампаний нужно получить как можно больше информации о трафике. Для этого используются, в основном, UTM-метки и субаккаунты для CPA-сетей. Хорошо бы при перенаправлении посетителя на мобильный лендинг передать и все эти данные.
Передача UTM-меток
Передача субаккаунтов
Чтобы понять принцип действия, почитайте статью про UTM-метки и субаккаунты в CPA.
Т.е. здесь мы из UTM-меток получили данные для субаккаунтов.
Эта конструкция должна идти после строки RewriteEngine On (если её нет — добавьте).
Если же нужно отправить всех мобильных посетителей на mobile-версию сайта (с любой страницы на http://m.site.ru/ ), то последняя строчка из кода выше может иметь такой вид:
Перенаправление на мобильную версию сайта в HTML (JavaScript)
Иногда нет возможности что-то редактировать на сайте на стороне сервера — например, вы используете конструктор сайтов. Тут-то и пригодится редирект на HTML, а точнее — на JavaScript, т.к. на простом HTML нужные условия не прописать.
В этом случае все посетители, у которых ширина экрана меньше 600 px улетят на http://site.ru/mobile/. Если нужна меньшая ширина — меняйте 600 на меньшее значение.
Передача меток и субаккаунтов на мобильный лендинг с помощью JavaScript
При перенаправлении этим способом также можно сохранить данные о трафике.
Передача UTM-меток
Передача субаккаунтов
Т.е. из UTM-меток получили субаккаунты.
Какой способ мобильного редиректа лучше?
С JavaScript-редиректом юзер-агент не важен, т.к. проверяется только ширина экрана. Но здесь посетитель может заметить, как сначала попадает на одну страницу, а потом его перекидывает на другую.
Способ на ява скрипт наиболее оптимальный, но само перенаправление происходит медленнее.
Очень хорошая статья, но почему то у меня не работает способ Передача меток на мобильный лендинг с помощью PHP.
Может есть какая то хитрость?
А способ со скриптом не работает в некоторых телефонах, хотя разрешение у них явно меньше 800 px.
Хитростей нет, возможно, что-то упустили — не поставили кавычки где-нибудь и т.п.
Ошибка может быть либо при передаче меток на лендинг, либо при приёме их на лендинге.
Огромнейшее СПАСИБО. я все голову ломала, как перекинуть пользователей на мобильную версию, все сработало ОТЛИЧНО. Подробно и ясно, особенно для меня, чайника просто все разжевано. Еще раз вам ОГРОМНОЕ спасибо! =) =) =)
Пиз*дец как у меня пригорело, когда не мог допереть почему у меня телефон не редиректит на мобильную версию. Это статья баян. И телефоны уже с расширениеМ экрана получше. ВЫСТАВЛЯЙТЕ СМЕЛО 1200 ЗА МЕСТО 600. *HELP* *MACHO*
Спасибо большое! Пробовал много вариантов, но именно ваш скрипт помог =)
статья очень полезная — спасибо! но в жизни вопрос гораздо сложнее))) владельцы сайтов хотят чтоб смартфоны/телефоны получали мобильную версию, но при этом видели бы кнопку или ссылку на полную версию сайта, и могли бы ее тоже открыть. а этож надо еще что-то придумывать — куки или может еще что-то
Спасибо за информацию неделю маялся как с не адаптивного битрикса перекидывать на мобильную версию сайта, попробую сделать по вашей рекомендации — если получится отпишусь с рекомендацией
Петр, спасибо огромное! Статья крайне полезная и четкая.
Отдельное спасибо за информацию по передаче UTM!
Я, наверное, перерыл всю информацию о мобильных версиях в сети. Изначально хотел сделать самостоятельно отдельную мобильную версию сайта на поддомене. Но узнал, что поисковые системы гораздо лучше относятся именно к адаптации сайта под рвзные устройства. Потому что используется один контент и одна ссылка. Начал пробовать сделать адаптацию своими руками, но там очень много подводных камней. Стили нужно прописывать чуть ли не под каждый гаджет. Т.е. под каждую ширину экрана нужно создавать новые параметры отображения всех блоков. Решил найти специалиста, который разбирается в этом. Это тоже оказалось не так просто. Разброс цен аховый. От 500 руб до 100 000 руб. Понятное дело — решил начать с 500))
После общения, конечно же, оказалось что адаптация моего сайта стоит не 500 руб, а 17 000 руб)))
Но после долгих поисков нашел оптимальный вариант по всем параметрам. Адаптацию сайта поручил им mobile-version.ru и не пожалел. Сразу сказали адекватную стоимость уже на своем сайте и потом она не изменилась. Все мои пожелания выполнени и даже внесли свои предложения бесплатно! Теперь мой сайт проходит тесты от гугла, и яндекс вебмастер тоже счастлив, наблюдая за моим сайтом.
Для тех, кто еще сомневается — делать или не делать адаптацию — ДЕЛАЙТЕ. 8)
Поисковики заставят сделать мобильные версии всем сайтам. Вопрос времени.
Подскажите пожалуйста, у меня на хостинге нет поддержки php, сайт prestigechat.ru. В страницу HTML вписываю код:
Возможно, в других скриптах в коде этой страницы есть ошибки.