Держать пользователя на мобильном сайте - PullRequest
3 голосов
/ 14 сентября 2011

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

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

, если это невозможно - есть липростое минимальное решение, чтобы сделать эту работу в коде?

Ответы [ 4 ]

4 голосов
/ 14 сентября 2011

Что я делаю, так это предоставляю ссылку на полный сайт на мобильном сайте.Когда ссылка нажата, я устанавливаю файл cookie [с очень коротким временем жизни], который позволяет обычному веб-сайту не перенаправлять.

Перенаправление на мобильные устройства обрабатывается PHP, а не htaccess, на обычном сайте.PHP проверяет наличие cookie и, если не найден, перенаправляет на мобильный телефон.Обычный сайт также предоставляет ссылку на мобильный сайт, который уничтожает куки.

0 голосов
/ 27 сентября 2011

Вы можете пропустить все файлы cookie и проверить ссылку HTTP в заголовке http. Если рефералом является ваш мобильный сайт, не перенаправляйте их на мобильный сайт.

Надеюсь, это поможет.

PS: Мне было бы интересно увидеть ваш .htaccess для обнаружения мобильных устройств. Насколько это надежно? Случайно перенаправляет много планшетов?

0 голосов
/ 14 сентября 2011

Установить cookie или параметр сеанса, содержащий выбор переопределения пользователем.

0 голосов
/ 14 сентября 2011

Исходя из моего комментария, вы можете сделать то же самое в .htaccess, проверив% {HTTP_REFERER} в mod_rewrite.Я не уверен, как вы делаете перенаправление в настоящее время, но вы, вероятно, можете объединить две части.Таким образом, вы получите что-то вроде этого:

RewriteEngine On
RewriteCond %{HTTP_REFERER}     !^http://mobile.mydomain.com
RewriteCond %{HTTP_USER_AGENT}  [your check for mobile browser]
RewriteRule ^(.*)$ http://mobile.mydomain.com/$1 [R=301,L]

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

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