iPhone / Androidブラウザーをm.example.comにどのように誘導しますか?


8

HTML5ブラウザーでのみ機能する特別なコーディングがあります(単純な地理位置情報など)。iPhoneおよびAndroidユーザーを私のウェブサイトのm.example.comバージョンにリダイレクトしたい。これを行うための最良の方法は何ですか?

回答:


2

UserAgent検出を使用するか、jQuery.support()を使用できます。特定の機能を探しているので、2つを組み合わせて目的のものを取得できます。

UserAgentが実際の最善策かもしれません。.htaccessファイルを使用してこれを実行し、http要求を削減します。接続が遅い場合やJavaScriptのパフォーマンスが遅い場合は、リダイレクトの前にメインサイトをフラッシュする可能性があります。

モバイルユーザーエージェントの(主に)網羅的なリストは、ウィキペディアのページで確認できます。ご覧のように、正規表現で探すことができるメーカーとバージョンの間には類似点があります。


3
これを行うことは、特にモバイルデバイスの帯域幅が非常に狭いため、JSを使用するよりもバックエンドが非常に望ましいです。.htaccessメソッドが最善の策であり、その後にPHP / ASP / whateverバックエンドメソッドが続きます
Mark Henderson

2

あなたの質問は、2つの部分..リダイレクトとhtml5の互換性に触れます。

リダイレクション

次の.htaccessを使用しています。

RewriteCond %{HTTP_ACCEPT} "text\/vnd\.wap\.wml|application\/vnd\.wap\.xhtml\+xml" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "sony|symbian|nokia|samsung|mobile|windows ce|epoc|opera" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "mini|nitro|j2me|midp-|cldc-|netfront|mot|up\.browser|up\.link|audiovox" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "blackberry|ericsson,|panasonic|philips|sanyo|sharp|sie-" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "portalmmm|blazer|avantgo|danger|palm|series60|palmsource|pocketpc" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "smartphone|rover|ipaq|au-mic,|alcatel|ericy|vodafone\/|wap1\.|wap2\.|iPhone|android" [NC]
RewriteRule ^(.*)$ http://m.example.com/ [L,R=302]

PHPの場合、このライブラリを使用できます:http : //detectmobilebrowsers.mobi/ ...しかし、処理時間とセキュリティのためにhtaccessを使用することを強くお勧めします。

ここでいくつかの追加の例を見つけることができます

http://ohryan.ca/blog/2009/02/18/revisiting-mobile-redirection-using-htaccess-rewrite-rules/

ブラウザ機能

私のAndroidフォンは、地理位置情報コード付きのhtml5で問題ありません。Modernizr JavaScriptライブラリを使用して、ページにアクセスするクライアントブラウザの機能を検出することを検討してください。

優れた HTML5ボイラープレートテンプレートは、そのままの状態でmodernizrを使用して、この種のニーズをサポートしています。

私の意見は、私はhtaccessメソッドを使用して、modernizrでサポートされている最近の電話とブラウザを除き、AndroidとiPhoneのユーザーがModernizrでhtml5機能のサポートをチェックし、「ジオロケーションなし」バージョンの「残り」をリダイレクトできるようにすることをお勧めします。

Modernizrの例:

 if (Modernizr.geolocation) {
    // do stuff
 }else{
    // propose mobile version 
 }

お役に立てれば


1

PHPを使用$_SERVER['HTTP_USER_AGENT']してコーディングしている場合は、ほとんどの主要なモバイルデバイスからPHPスクリプトに送信されるUserAgentヘッダーの確認に使用できます。次に、このヘッダーの値をsubstrfuctionと比較して、内部に必要なものと比較します。

たとえば、Appleデバイスには常に「iphone」または「ipad」のサブストリングがあります。Androidデバイスには常に「android」が付いています。ほとんどすべてのモバイルデバイスで、このヘッダーに「モバイル」サブストリングがリストされます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.