Как я могу отличить мобильных пользователей, и почему это не сработало?

У меня есть основной сайт и мобильный сайт, и я надеюсь, что Apache перенаправит пользователей на основе их зарегистрированного пользовательского агента в качестве следующего шага в обеспечении лучшего мобильного опыта. Например, пользователь, который посещает http://jonathanscorner.com/spectacles/ , перенаправляется на http://jonathanscorner.mobi/?url=/spectacles/ . В настоящее время то, что я пробовал в моем httpd.conf, похоже, не влияет на мой iPhone; то, что я пробовал, было:

    RewriteCond% {HTTP_USER_AGENT} (andriod | avantgo | blackberry | blazer | elaine
| Hiptop | iphone | Сделать ставку | зажигать | MIDP | ММР | мобильный | нокиа | o2 | opera.mini | opera.mobile | пальмовое
| КПК | Plucker | карман | PSP | Смартфон | Symbian | Treo | up.browser | up.link | Водафон | WAP
| windows.ce; .iemobile; | windows.ce; .ppc; | windows.ce; .smartphone; | ziino) [NC]
    RewriteRule (. *) Http://jonathanscorner.mobi/?url=$1 [R = 302, L]

с намерением перейти на 301, когда все работает хорошо.

Непосредственный вопрос, который у меня возникает, заключается в том, почему это не перенаправляет http://jonathanscorner.com/spectacles/, когда я захожу с моего iPhone (и что я могу сделать, чтобы легко перенаправлять пользователей мобильных телефонов на мобильный сайт); мой более широкий вопрос заключается в том, какие небольшие шаги я могу предпринять, чтобы улучшить опыт посещения для мобильных пользователей. Основной сайт имеет немного настоящего мастерства в графическом дизайне; Мобильный сайт предназначен для легкого прикосновения, например, одним небольшим попаданием в сеть на страницу.

20.07.2009 20:25:08
3 ОТВЕТА

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

http://www.mattcutts.com/blog/iphone-user-agent/ http://www.gtrifonov.com/blog/2009/04/08/IPhone_User_Agent_Strings.aspx

2
20.07.2009 20:28:03
Они содержат строку «iPhone». Разве RewriteCond ... (... | iphone | ...) [NC] не должен совпадать как регистронезависимый? Если на моем iPhone в строке user-agent отображается «iPhone», а условие не совпадает, то мне не хватает того, как работает Apache.
Christos Hayward 20.07.2009 20:45:21

http://deviceatlas.com/

Эта страница получила лучшую базу мобильных пользовательских агентов в сети. Он также имеет API для работы с различными UA. Может быть, это вам пригодится?

КСТАТИ; версия для разработчиков бесплатна, но если вы серьезно относитесь к ней, небольшая плата за профессиональную версию стоит того.

0
20.07.2009 20:35:52

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

Вы можете увидеть результат по адресу http://JonathansCorner.com/ на домашней странице: просто ссылка в верхней части страницы с надписью «Мобильный сайт» и отображается на большинстве мобильных устройств, но не на большинстве настольных компьютеров. Это далеко не идеально, но это скромное улучшение. (И, AFAICT, он не имеет ничего такого, что пауки поисковых систем будут интерпретировать как текст, показанный поисковым системам, но скрытый от обычных пользователей, который наказывается как blackhat SEO.)

Как я это сделал: Следуя http://www.alistapart.com/articles/return-of-the-mobile-stylesheet , я настроил свою основную таблицу стилей так, чтобы она не отображала div типа mobile_notice. Это отменяется в мобильной таблице стилей, которая ловит iPhone. Из заголовка страницы:

<pre>
<link rel="stylesheet" href="/include/style.cgi" type="text/css" />
<link rel="stylesheet" href="/include/mobile.css" type="text/css"
media="handheld" />
<link rel="stylesheet" href="/include/mobile.css" type="text/css"
media="only screen and (max-device width: 480px)" />
</pre>

Большинство браузеров, которые не используют JavaScript, не являются мастерами, использующими NoScript или тому подобное; это менее мощные мобильные браузеры, вероятно, те, которые больше всего нуждаются в упрощенном мобильном сайте:

<pre>
<noscript><h1><a href="http://JonathansCorner.mobi/">Mobile-friendly
version</a></h1></noscript>
</pre>

И без текста, оштрафованного поисковой системой, который кажется скрытой от широкой публики пищей паука, я добавляю хороший устаревший document.write (), чтобы телефоны с более способными браузерами увидели div, который отображается только на мобильных телефонах.

<pre>
<script>
document.write("<div class='mobile_notice'><h1><a href='http://JonathansCorner.mobi/'>Mobile-friendly version</a></h1></div>");
</script>
</pre>

Сетевой эффект? Скромное улучшение; на мобильных устройствах есть приглашение использовать мобильный сайт , но посетители могут остаться на полном веб-сайте, если захотят. И это избегает вещей, которые наказываются поисковыми системами.

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

0
20.07.2009 21:50:53