リダイレクトモバイル機器への代替のバージョンのサイト
-
12-09-2019 - |
質問
今日はこのまま代替版のサイト準備のためのモバイルデバイスのコンテンツまたは異なって、うまく動作しています。
何が最良の方法の異なるバージョンです。どのような人が住んでいますかリストのすべてのモバイル機器での使用にuser-agentヘッダのトリッキーとして、見逃さい。
ことを考えまuseingデバイス画面の幅がされなかった場合はどうなモバイルデバイスの作品がjavascriptをサポートしています。どうして白す。
解決
あなたはリクエストからクライアントデバイスを認識します(たとえば、 WURFL のような)デバイス記述データベースを使用することができますヘッダ。その後、別のサイトにリダイレクトするかどうかを決定する前に(例えばJavaScriptをサポート、または十分な大画面である)デバイスは、あなたのサイトを扱うことができるかどうかを判断するために、そのデータベースを照会することができます。
あなたは、あなたの環境に触れていませんが、WURFLはJavaとPHPのためのAPIを提供し、そしておそらく同様に他のもの。何の提供するAPIはありません場合は、あなたはまだWURFLを使用できますが、XMLデータを自分で解析し、処理する必要があります。
他のヒント
のメディアは=「手持ち」デスクトップブラウザ(画面のメディアタイプを使用しています)のふりをiphoneのような近代的なスマートフォンでは動作しません。
http://detectmobilebrowser.com/する ジャバスクリプト、PHP、asp.net、ルビー、など。
- 。フリー&オープンソースは、多くの言語で利用できる包括的なモバイルユーザーエージェントチェッカーを持っていますあなたはJavaScriptを使用してモバイルサイトにリダイレクトするために探しているなら、私はWURFLはまた、あなたがJavaScriptでサーバー側の検出を行うことができますそのためのソリューションを持っていることに気づいています。
<script type='text/javascript' src="//wurfl.io/wurfl.js"></script>
あなたは次のようになりますJSONオブジェクトに残されます。
{
"complete_device_name":"Apple iPhone 6",
"is_mobile":true,
"form_factor":"Smartphone"
}
これで、これを使用することができます:
if (WURFL.is_mobile === true) {
window.location.replace("http://stackoverflow.com");
}
私は、ユーザーが自分のJavascriptを有効にしているかどうかを検出するための良い/エレガントな方法はないと思います。
IMO、最高のユーザーエージェントのリストを表示することです:ここを(悲しいことに、フランス語で)非常に完全であるように見えるのUser-Agentのリスト、である。
ちょうどあなたのヘッダにこれを入れます:
<script type="text/javascript">
<!--
if (screen.width <= 700) {
window.location = "http://www.mobile-site.com";
}
//-->
</script>
ちょうど約すべての人のコンピュータの画面は、700pxのthreshholdを超えているが、これvauleを変更することができます。ので、すべてのモバイルdivicesがあなたのモバイルサイトにリダイレクトされます(少なくとも私は、任意のものを知らない)それは700pxの上にあるそこに携帯電話やタブレットがイマイチます。
Skaffmanと同意、別のデバイスデータベースは DeviceAtlas にあります。あなたは、しかし、この1のために支払う必要があります。
は、サーバー側のソリューションを検討する方が良いでしょう、との WURFL のAPIは、その方向に向けて助けることができます。
時々、我々は、(リバースプロキシキャッシュページとして、モバイル版にリダイレクトすることはできません)この種のアプローチで問題を回避したいか、私たちは、今日、ほとんどすべての最近のデバイスは、JSをサポートすることを知って迅速なソリューションを必要としています。
このような理由から、私は、ブラウザのユーザーエージェントを検出し、モバイルデバイスからアクセスしている場合、あなたのサイトのモバイル版にリダイレクト「redirection_mobile.js」と呼ばれるJSスクリプトを書いています。
あなたはデスクトップ版にモバイルデバイスからリダイレクトするいくつかのケースで(リンクと同じように、「メインのサイトに行く」)、スクリプトはそれを処理すると、あなたのセッションを終了したら、あなたはへのアクセスをよモバイル版を再度ます。
あなたがここにgithubの上のソースコードを見つけることができます http://github.com/sebarmeli / JS-リダイレクト - モバイルサイトとあなたがここに私の記事の一つで詳細を読むことができます:
<のhref = "http://blog.sebarmeli.com/2010/11/02/how-to-redirect-your-site-to-a-mobile-version-through-javascript/" のrel =」 nofollowを "> http://blog.sebarmeli.com/2010/11/02/how-to-redirect-your-site-to-a-mobile-version-through-javascript/ の
シンプルます:
<link rel="alternate" media="handheld" href="WEBSITE HERE">
ヘッド部のそれを入れています。
ここでは実用的なソリューションです。
RewriteEngine On
RewriteBase /
#http://stackoverflow.com/questions/3680463/mobile-redirect-using-htaccess
# Check if mobile=1 is set and set cookie 'mobile' equal to 1
RewriteCond %{QUERY_STRING} (^|&)mobile=1(&|$)
RewriteRule ^ - [CO=mobile:1:%{HTTP_HOST}]
# Check if mobile=0 is set and set cookie 'mobile' equal to 0
RewriteCond %{QUERY_STRING} (^|&)mobile=0(&|$)
RewriteRule ^ - [CO=mobile:0:%{HTTP_HOST}]
# cookie can't be set and read in the same request so check
RewriteCond %{QUERY_STRING} (^|&)mobile=0(&|$)
RewriteRule ^ - [S=1]
# Check if this looks like a mobile device
RewriteCond %{HTTP:x-wap-profile} !^$ [OR]
RewriteCond %{HTTP_USER_AGENT} "android|blackberry|ipad|iphone|ipod|iemobile|opera mobile|palmos|webos|googlebot-mobile" [NC,OR]
RewriteCond %{HTTP:Profile} !^$
RewriteCond %{QUERY_STRING} !^mobile=0(?:&|$)
# Check if we're not already on the mobile site
RewriteCond %{HTTP_HOST} !^m\.
# Check to make sure we haven't set the cookie before
RewriteCond %{HTTP:Cookie} !\mobile=0(;|$)
# Now redirect to the mobile site
RewriteRule ^ http://m.yourdomain.com%{REQUEST_URI} [R,L]
# Go back to full site
RewriteCond %{HTTP_HOST} ^m\.
RewriteCond %{QUERY_STRING} (?:^|&)mobile=0(?:&|$)
RewriteRule ^ http://yourdomain.com%{REQUEST_URI} [R,L]
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]