Определение Android устройства на PHP, JavaScript, htaccess


Содержание

Как сделать мобильный редирект

Если вы используете WordPress или Joomla, вы можете воспользоваться специализированными плагинами для мобильного редиректа.
Google, рекомендует не использовать мобильный редирект вовсе (имеется ввиду не делать отдельный домен/поддомен для мобильного сайта), а сделать адаптивную верстку сайта.

    Редирект пользователей на мобильную версию сайта

    Редирект на мобильный сайт Используйте для определения мобильного устройства специальную библиотеку Mobile Detect, реализация есть практически для всех фреймворков и CMS (Репозиторий на GitHub)

    Перенаправление на мобильную версию

Перенаправления с помощью .htaccess, PHP, HTML и JavaScript

HTML redirect играют важную роль для масштабных веб-проектов. Возможность переадресации трафика с одного сайта на другой помогает лучше управлять потоками посетителей и выполнять реструктуризацию ресурса.

С помощью редиректов пользователи могут отправлять сообщения с одинаковым содержанием на разных доменах, не позволяя их классифицировать как дублированный контент. Кроме этого перенаправления доменов являются эффективными способом для поисковой оптимизации.

Редиректы выполняются с помощью .htaccess , PHP скрипт , HTML мета-тегов и JavaScript .

Перенаправление доменов сайта

Редиректы используются для информирования серверов о том, что контент сайта был перенесен с одного URL-адреса на другой. Делать это необходимо, когда исходный веб-адрес ( цель входящей ссылки ) занимает высокие позиции в выдаче поисковых систем ( SERP ). В этом случае редирект сообщает поисковому роботу, что нужный контент был перенесен, предоставляя пользователю ссылку на новый адрес.

Без таких переадресаций веб-мастера столкнулись бы со страницей ошибки 404 вместо искомого сайта. Это то, чего коммерческие ресурсы особенно стремятся избежать. Онлайн-магазины предлагают постоянно меняющийся ассортимент товара, который отображается на многих страницах. Как только товар перестает продаваться, потенциальных клиентов перенаправляют на страницу с аналогичным продуктом. Это позволяет более эффективно управлять потоком посетителей, а также уменьшить показатель отказов.

Кроме этого перенаправление позволяет одинаковому контенту быть доступным по различным веб-адресам. Все альтернативные адреса перенаправляются в сторону приоритетного домена сайта:

Типы редиректов

Различают клиентские и серверные HTML meta redirect . В случае с серверными перенаправлениями происходит передача кодов состояния HTTP пользовательским агентам ( браузерам и поисковым роботам ).

Когда дело доходит до перенаправлений на стороне клиента, все выглядит по-другому: они выполняются без какого-либо ответа, и никакие коды состояний не передаются. Именно поэтому не все системы поддерживают редирект. Это может привести к ситуациям, когда посетители остаются на оригинальном сайте и не перенаправляются на новую страницу.

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

Серверные редиректы

В большинстве случаев серверные перенаправления домена выполняются через конфигурационный файл .htaccess или PHP скрипт . Преимущество этих методов состоит в том, что можно индивидуально определить, какой код состояния HTTP должен быть выведен на экран пользовательскому агенту. Это позволяет веб-мастерам помечать перенаправления, как постоянные или временные.


Ниже приведены актуальные коды состояния HTTP 301 и 302 :

  • redirect 301 HTML – перемещен навсегда: запрашиваемый ресурс теперь постоянно доступен по новому URL . Старый URL с этого момента становится недействительным;
  • 302 – перемещен временно: запрашиваемый ресурс доступен по новому URL . При этом исходный URL по-прежнему сохраняет свою актуальность.

Если код состояния HTTP не определен явно, сервер передает код состояния 302 во время редиректа. Это не всегда необходимо и рекомендуется вручную вводить нужный код состояния при каждой переадресации, так как это позволяет снизить вероятность ошибки индексации, как в ситуации взлома URL . В отличие от редиректа 301 , код состояния 302 сообщает поисковым роботам, что первоначальный URL должен оставаться индексируемым. Предназначенный для постоянной работы адрес редиректа конкурирует с адресом, указанным в индексе поисковой системы.

Перенаправление через .htaccess

.htaccess представляет собой конфигурационный файл на сервере Apache , используемый для перезаписи центральной конфигурации на уровне каталогов. Этот файл позволяет администраторам сайта выполнять специфичные настройки каталога для доменов и их подкаталогов. Одна из функций файла .htaccess включает в себя серверные перенаправления отдельных адресов на другие URL .

После того, как файл .htaccess со следующим кодом помещается в основные каталоги, запросы на исходный домен перенаправляются серверной стороной на домен www.example.com ‘ ‘:

Строка кода начинается с redirect 301 HTML и определяет код состояния HTTP , который будет передан сервером. Далее следует путь к контенту, который должен быть перенаправлен. В данном случае будет перенаправлено все содержимое. В заключении целевой URL перенаправляется на URL пользовательского агента: ‘http://www.example.com’ .

Этот метод позволяет перенаправить отдельные файлы. Следующий код показывает редирект с одного сайта на другой:

.htaccess перенаправление из подкаталога на другой URL

Вот как выглядит постоянное перенаправление на сервере Apache с активным модулем mod_rewrite :

В первой строке кода модуль mod_rewrite сервера Apache активируется с помощью команды ‘RewriteEngine On’ . После этого указывается « RewriteRule » с путем к файлу перенаправления и адресом назначения. Символы ^ и $ обозначают начало и конец пути, а L означает последнее правило для соответствующего запроса. R = 301 пересылает статус HTTP 301 .

Илон Маск рекомендует:  Серверы caudium

При настройке редиректа с помощью .htaccess ошибочные записи могут серьезно повлиять на работу сайта. Учитывая, что эти изменения вступают в силу сразу после сохранения файла .htaccess , нужно тщательно проверять соответствующие конфигурации.

Перенаправления с помощью PHP

HTML redirect на другую страницу может также быть выполнен PHP скриптом ( например, в index.php ). Следующий код отображает постоянное перенаправление к целевому URL ‘www.example.com’ :

При передаче через PHP скрипт код состояния HTTP определяется с помощью функции « header » во второй строке кода. В этом примере должен быть выполнен постоянный 301 редирект . Учитывая, что серверные перенаправления обычно выполняются на временной основе, то для постоянного редиректа нужно явно указать код состояния 301 . Адрес назначения перенаправления также прописан в ‘ header ‘.

В примере перенаправление происходит на ‘ http://www.example.com ‘. Функция ‘ exit ‘ в четвертой строке кода заканчивает сценарий и препятствует выполнению следующей строки. Чтобы редиректы работали через PHP скрипт, блок кода должен быть расположен в начале HTML страницы. Это препятствует передаче сервером содержимого HTML на страницу перенаправления.

Клиентские редиректы


Если выполнение перенаправления на стороне сервера невозможно по техническим причинам, то можно использовать клиентское решение. Для этого применяется HTML метатег « refresh » и JavaScript . Недостатком перенаправления на стороне клиента является то, что серверы не передают коды состояния HTTP запрашивающим браузерам или поисковым роботам.

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

Redirect HTML index на стороне клиента оказывают негативное влияние на поисковый индекс. С клиентскими редиректами 301 не происходит явного исключения из индексации через код состояния HTTP . Это может привести к перенаправлению доменов, конкурирующих с доменами назначения, когда речь заходит о поисковых запросах, связанных с рейтингом. В отличие от серверных редиректов, которые остаются невидимыми для пользователей, клиентские всегда сопровождаются задержками.

Переадресация с помощью HTML метатега refresh

HTML перенаправления реализуются через метатеги с атрибутом ‘ http-equiv ’. Для этого нужен простой HTML-файл и соответствующий тег в заголовке для создания перенаправления. Чтобы посетители получали информацию о редиректе, в HTML-документе должно быть установлено соответствующее уведомление: « Пожалуйста, подождите. Вы будете перенаправлены … ‘. Простое перенаправление с помощью refresh выглядит следующим образом:

Клиенту будет предложено перенаправление на новую страницу через метатег http-equiv = «refresh» . То, как это происходит, определяется в атрибуте ‘ content ’. Приведенный выше пример перенаправляет пользователей на домен ‘ www.example.com ‘ через десять секунд.

Переадресация с помощью JavaScript

JavaScript предлагает простую возможность HTML redirect домена на стороне клиента. Но JavaScript поддерживается не всеми браузерами из-за соображений безопасности. Использование данного решения также может создать проблемы для поисковых роботов и пользователей с активными дополнениями NoScript . Вот как выглядит код перенаправления с помощью JavaScript :

Самое главное здесь это третья строка кода. Объект ‘ window.location ‘ используется, чтобы сделать ссылку на текущий адрес сайта. Команда ‘ replace ‘ инструктирует браузер направить пользователя к домену назначения (‘ www.example.com ‘).

Данная публикация представляет собой перевод статьи « Domain redirects via .htaccess, PHP, HTML, and JavaScript » , подготовленной дружной командой проекта Интернет-технологии.ру

Определение мобильного браузера javascript

Определение мобильного браузера javascript — это достаточно остро стоящая сегодня задача, потому, что с приходом большого количества разнообразных мобильных устройств, сайты стали трансформироваться и подстраиваться под их рамки. Таким образом, для некоторых сайтов очень важно отключить какой-то не очень важный функционал в мобильных версиях (который к тому же может там и не работает).

Делаем определение мобильного браузера javascript

Для этого можно использовать специальную объект-функцию на чистом Javascript, которая способна по признакам UserAgent определить мобильный это браузер или нет, а также уточнить какой именно мобильный браузер.

В принципе она сделана по образу и подобию функции browser не так давно удалённой из jQuery. Смотрите сами:

Это декларация и описание функции, которое нужно вставить внутри тэга

Определяем устройство с помощью PHP

Однажды этот прекрасный день пришёл. День, когда я физически осознал, что мне нужно определять, каким устройством пользуется посетитель сайта, чтобы соответственно отрисовывать для него страницу.

Прошлая методика с помощью медиазапросов по ширине экрана в моих глазах себя изжила — в таком случае на страницу всё равно загружается все элементы, только часть из скрывается или модернизируется. С одной стороны — это правильный и надёжный подход. С другой стороны, когда у нас присутствуют тяжёлые медиафайлы (например, видеофон) или немного другое расположение элементов, то будет намного проще и лучше грузить только нужные элементы в зависимости от того, каким устройством пользуется посетитель сайта.


Итак, я пошёл в интернет за готовым ответом, поскольку издавна исповедую практику «Сначала попробовать чужие костыли готовые решения, а если не нашёл — писать самостоятельно». Собственно, что я нашёл в интернете — это использовать $_SERVER[«HTTP_USER_AGENT»] или вообще пользоваться JavaScript’ом.

Затем, на одном форуме нашёл таки описание интересного и простого php-скрипта, которым уже достаточно давно пользуюсь и хочу поделиться с вами. Называется он Mobile-Detect (ссылка на GitHub). Это очень легковесное и удобное решение, которое использует ту самую строчку HTTP_USER_AGENT в комплекте с определёнными заголовками.

Проект постоянно поддерживается и обновляется, ибо весьма полезная вещь.

Подключается скрипт очень просто — с помощью requred_once мы указываем путь к файлу, а затем инициализируем объект:

Настройка скрипта завершена. Теперь через использование $detect мы можем определять устройства. Нам доступны следующие переменные для определения типа устройств:

  • isMobile — переменная, которая определяет любое мобильное устройство — как смартфон, так и планшет;
  • isTablet — переменная, которая предназначена для определения только планшетных компьютеров.
Илон Маск рекомендует:  noembed в HTML

Также существуют две переменные для определения операционной системы мобильного устройства:

  • isiOS — определяет устройства под управлением iOs (iPhone и iPad);
  • isAndroidOS — устройства на Android;
  • isWindowsMobileOS и isWindowsPhoneOS — тут можно не просто узнать, что эта мобильная система производства Microsoft, но даже указать его версии. WindowsMobile уже не столь актуальна, поскольку мелкомягкие перешли на единую платформу, но если вдруг к нам зайдут пользователи Pocket PC и Smartphone, то мы модем предложить для них уникальный сервис;
  • isBlackBerryOS — можно определить также смартфоны этого производителя. Для России аппараты BlackBerry не слишком актуальны, но возможно всё (вдруг вы или ваш заказчик — фанат или пользователь этого девайса, и нужно сделать что-то особенное для других пользователей);
  • isPalmOS и isSymbianOS — для устройств на таких операционных системах есть переменные для определения. Для меня это очень редкие устройства — настолько, что в жизни таких не видел (но это не точно), только на сайты заходят редкие пользователи этих устройств.

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

  • isiPhone и isiPad — можно чётко определить для каждого из устройств Apple, что показывать его пользователю;
  • isSamsung — для устройств производства Samsung, один из самых популярных производителей;
  • isLG — телефоны производства LG также весьма популярны и для них можно сделать что-то особое;
  • isVertu — посетитель вашего сайта обладатель телефона Vertu, нужно больше золота (и умножаем все цены в магазине на 10).

В реальности этих переменных намного больше — на демо-странице скрипта можно увидеть список поддерживаемых переменных.

Для тех, кто хочет убойной точности и избирательности, можно указывать нужные устройства через значения UserAgent, но по мне такая избирательность уж слишком чрезмерная (хотя бывает всякое).

Разработчики не перестают совершенствовать свой продукт и вполне вероятно, что скоро нам будет доступна возможность определения версий браузеров и устройств (в первую очередь для продукции Apple) — функции уже есть в последнем релизе, но пока они находятся на бета-тестировании.

Теперь давайте разберём на примере принцип работы скрипта. Допустим, мы должны выводить для посетителя сайта разные сообщения в зависимости от операционной системы его устройства. Это будет выглядеть так:

Этот пример немного бесполезный, но очень простой. Немного подумав, этот скрипт можно исползовать для более изящных решений, например, в зависимости от операционной системы подключать разные стили и изображения, чтобы дизайн сайта адаптировался под устройство. Либо, если на вашей странице есть реклама мобильного приложения, выводил предложения о переходе на AppStore или Google Play соответственно. Идей для применения может быть много.


Предлагаю вашему вниманию ещё один пример, который используется на моём сайте. Суть кода следующая — мы выводим разные варианты шапки сайта в зависимости от типа устройства. Код (с сокращениями) следующий:

И напоследок самое сладкое — эта библиотека была портирована на JavaScript, Varnish Cache и LUA.

На основе этого скрипта написаны плагины и модули для WordPress, Drupal, Joomla, Magento, PrestaShop (там он вообще поставляется в стандартном пакете с версии 1.5), Laravel, Yii Framework и множество других фреймворков и языков и платформ.

Библиотека очень полезная и весьма доставляющая.

Как определить мобильное устройство на сайте (PHP)?

Очень часто вебмастеры сталкиваются с необходимостью адаптировать дизайн и функциональность своего сайта для просмотра на мобильных устройствах. И если ранее было достаточно проверить один из HTTP заголовков (User-agent) для того, чтобы узнать, что человек заходит с мобильного телефона, то на сегодняшний день существует множество устройств с доступом в интернет, функциональность которых сильно отличается. Это мобильные телефоны, смартфоны различных ОС, планшетные компьютеры на платформах Windows CE, Android, Apple iOS, Windows 8 (список чрезвычайно большой), телевизоры Smart-TV и прочие. И вот, как раз, с задачей точно определить тип устройства, производителя (марку), операционную систему, версию прошивки, программное обеспечение, — прекрасно справляется PHP-класс под названием MobileDetect.

Как подключить скрипт на сайт

Для того, чтобы заставить класс MobileDetect работать на Вас, достаточно сделать две вещи:

1. Распаковать файл Mobile_Detect.php на сервер;

2. Подключить php файл Mobile_Detect.php с помощью директивы require_once и инициализировать экземпляр класса;

3. Использовать переменные класса для определения типа устройства, марки, версии прошивки, браузера и т.п.

Каждый из этих этапов заключен в примере ниже. Читайте комменты в скрипте для подробной информации.

Вот так, друзья! Скажу напоследок, что уж очень удобная штука: за Вас хорошо постарались разработчики этого небольшого, но полезного класса Mobile_Detect. С помощью этой библиотеки Вы можете настроить отображение своего сайта с изысканной точностью! Если моя статья оказалась Вам полезной, просьба ставить лайки, а так же обращать внимание на сайты наших рекламодателей!

JavaScript: как определить мобильное устройство (Andro >Опубликовано в JavaScript, Web-порограммирование Август 24, 2014

Сегодня поделюсь небольшим JavaScript кодом, которы помогает определить, что пользователь использует мобильное устройство.

Как видите, все очень просто, пользуйтесь на здоровье)

Если вам понравился данный материал, пожалуйста, нажмите на кнопку от лайка
(находятся ниже) – чтобы о нем узнали другие люди.
Буду вам очень благодарен! Спасибо!

Лучший способ перенаправить одну php-страницу для мобильных устройств с помощью PHP /Javascript

У меня есть приложение Google Map для PHP, которое я хочу сделать видимым для пользователей, когда они используют рабочий стол, но перенаправить на другую страницу PHP, если посетитель использует мобильное устройство. Я знаю, что существует множество способов сделать это от ОС до определения типа браузера, но мне было интересно, может ли кто-нибудь предоставить какой-то код, который, по его мнению, является лучшим способом справиться с этим, и он является наиболее последовательным?

Илон Маск рекомендует:  Функции справочник


6 ответов

Если вы не хотите использовать javascript, вы можете обработать его с помощью php. Посмотрите на эту библиотеку: http://code.google.com/p/php -Mobile обнаружение /. И тогда вы могли бы сделать что-то вроде:

Отказ от ответственности: я знаю, что это регулярное выражение не идеально, так что не голосуйте только за это:)

Просто хотел поделиться этими несколькими моментами.

  1. На некоторых серверах $ _ SERVER [‘HTTP_USER_AGENT’] не задан, поэтому убедитесь, что сначала он пуст,
  2. Для нас важна читабельность, поэтому мы используем это вместо других сложных регулярных выражений. Просто добавьте другие устройства , как считаете нужным.

Определение Android устройства на PHP, JavaScript, htaccess

Как это все работает? На сервере обязательно должен быть включен модуль mod_rewrite, без него ничего не получится. Так что для надежности весь этот блок обернут в проверку наличия mod_rewrite у сервера Apache (в оригинальном коде этого не было). Дальше в модуле анализируется строка UserAgent браузера посетителя, в ней последовательно проверяется наличие подстроки, характерной для браузеров мобильных устройств. После этого проверяются специфические служебные заголовки, обычно отправляемые мобильными браузерами. Если хоть одно из этих условий выполнено, то следом выполняется дополнительная проверка на различные поисковые боты, а также некоторые другие сигнатуры, присущие стационарным браузерам или автоматическим модулям. Если и эта проверка пройдена удачно, то последней строчкой посетитель перенаправляется на мобильную версию сайта.

Нельзя однозначно сказать, что этот способ плох или хорош. У него есть как положительные стороны, так и явные недостатки. К плюсам можно отнести очень хороший процент правильного определения мобильных устройств, при этом вам не надо ничего менять в скриптах. А в случае появления новых мобильных устройств в список просто добавляются новые сигнатуры. Также этот метод будет прекрасно работать даже на статичных сайтах, вообще без какого-либо программирования. Минусы такого метода определения в том, что для мобильной версии придется создавать отдельный домен или субдомен. В принципе, это даже правильно, но так или иначе требует настроек на сервере. Еще к минусам можно отнести то, что ни вы, ни пользователь не сможете выбрать что открыть — полную или мобильную версию сайта. Например, у меня на этом сайте мобильные устройства определяются средствами PHP, но с мобильной версии сайта всегда можно переключиться на полную, и ей можно пользоваться даже с мобильного устройства. При работе через .htaccess пользователь без вариантов всегда будет переадресовываться на мобильную версию. Так что как всегда, выбор инструментария определяется поставленной задачей.

Все виды редиректов (html, js, php, htaccess)

Примеры редиректов или же перенаправлений на другую страницу.

Редирект в HTML

Редирект в JavaScript

Метод replace() позволяет заменить одну страницу другой таким образом, что это замещение не будет отражено в истории просмотра HTML-страниц (history) браузера

Метод reload() полностью моделирует поведение браузера при нажатии на кнопку reload в панели инструментов. Если вызывать метод без аргумента или указать его равным true , то браузер проверит время последней модификации документа и загрузит его либо из кеша (если документ не был модифицирован), либо с сервера. Такое поведение соответствует нажатию на кнопку reload . Если в качестве аргумента указать false , то браузер перезагрузит текущий документ с сервера. Такое поведение соответствует одновременному нажатию на reload и кнопки клавиатуры shift (reload+shift) .

Следующие примеры тоже перенаправят на google:

С помощью функции setTimeout возможно реализовать задержку переадресации перед выполнением редиректа (в примере — 5 секунд):

Простой пример редиректа с таймером:


Редирект в PHP

В php есть функция header() , которая разрешает не только подменять стандартные заголовки, но и добавлять новые.

Редирект HTML в PHP:

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

Первая строка указывает код http, а вторая, собственно, задает адрес. В большинстве случаев, проблем не возникнет. Однако, если у вас используется режим FastCGI , то вместо «HTTP/1.1 301 Moved Permanently» может потребоваться написать «Status: 301 Moved Permanently» .

Редирект в .htaccess (RewriteEngine)

Необязательный параметр status — это три цифры — код редиректа (например, 301). Если не указан, то по умолчанию подставляется 302.

URL-path — часть запрашиваемого пользователем (или поисковиком) адреса, которая должна обязательно начинаться со слеша (/)

URL-to-redirect — полный адрес сайта (и, возможно, часть пути), на который будет осуществляться редирект. Должен быть вида http://site.ru/ — то есть обязательно должен присутствовать протокол (http://) и закрывающий адрес сайта слеш (/).

Если URL-path заканчивается не слешем, то редирект будет срабатывать только в случае точного совпадения запрошенного пользователем адреса и URL-path .

Если URL-path заканчивается слешем, то редирект сработает не только для указанного адреса, но и для всех, которые начинаются на указанный. А к URL-to-redirect будет добавлена часть адреса, следующая за последним указанным слешем в URL-path .

Действие директивы RedirectMatch аналогично Redirect , но в параметрах URL-regexp и URL-to-redirect можно использовать регулярные выражения.

У директивы RewriteRule более широкий спектр применения. Который, в числе прочих возможностей, разрешает ее использования и для редиректа — с указанием в конце строки в квадратных скобках [ ] флагов L (выполнить немедленно) и R (редирект).

Форум PHP программистов ► Профессиональная деятельность ► PHP взаимопомощь

Пейджер выключен!

Профиль
Группа: Пользователь
Сообщений: 11
Пользователь №: 36353
На форуме:
Карма:

Добрый день, подскажите пожалуйста.
Какой нужен скрипт , который определяет, что человек пришел на наш сайт с мобильного устройства и отправляет его на отдельную созданную страницу с адаптивной версткой. И где прописать данный скрипт ? Вернее где его вызвать на странице?
Помогите пожалуйста.

Вот например возможное решение (но, врят ли):

php
$iphone = strpos($_server[‘http_user_agent’],»iphone» ;
$andro ;
$palmpre = strpos($_server[‘http_user_agent’],»webos» ;
$berry = strpos($_server[‘http_user_agent’],»blackberry» ;
$ipod = strpos($_server[‘http_user_agent’],»ipod» ;

Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL