2012-02-23 17 views
1
をリダイレクトする

可能性の重複:
Mobile Redirect using htaccess
最善の方法は、モバイルデバイス

は現在、私はLAMPを利用し、定期的にウェブサイトを持っています。モバイルデバイスのリダイレクトを次のようなサブドメインに追加したいとします。m.mydomain.com

PCとモバイルデバイスのコンテンツの内容にはいくつかの違いがあります。

これを行うにはどうすればよいですか?それは.htaccessファイルで行うことができますか?またはPHPスクリプトのいくつかの並べ替えが必要ですか?

ありがとうございました。

+2

http://stackoverflow.com/questions/3680463/mobile-redirect-using-htaccess – itsmequinn

答えて

6

私は.htaccessファイルが最速になると思います。あなたはhtaccessファイルにこのようなものを置くかもしれません。

RewriteCond %{HTTP_HOST} ^www\.mydomain\.com [NC] 
RewriteCond %{HTTP_USER_AGENT} "android|blackberry|iphone|ipod|iemobile|opera mobile|palmos|webos|googlebot-mobile" [NC] 
RewriteRule ^(.*)$ http://m.mydomain.com/$1 [L,R=302] 
+0

はい、私はこの解決策を試しました - しかし素晴らしいですが、ブラウザをwwwに戻すように変更する必要があります。 mydomain.comはリストにあるデバイスの1つではありません。それ、どうやったら出来るの? – santa

+0

*!*で条件を開始してみてください。 'RewriteCond%{HTTP_USER_AGENT}!' android | blackberry | ... ' –

+0

RewriteCond%{HTTP_USER_AGENT}を持つw.mydomain.comサブディレクトリに別の.htaccessファイルを置くと思います! "アンドロイド|ブラックベリー| ... – santa

-1

こんにちはサンタは、私が見つかりましたこの:

if(navigator.userAgent.match(/Android/i) || 
navigator.userAgent.match(/webOS/i) || 
navigator.userAgent.match(/iPhone/i) || 
navigator.userAgent.match(/iPod/i) || 
navigator.userAgent.match(/BlackBerry/) 
){ 
// some code 
} 

出典:What is the best way to detect a mobile device in jQuery?

+2

これは、.htaccessまたはPHPの質問ではなく、Javascriptの解決策です。 JSソリューションを提供する際の問題は、ページに既にOSタイプを決定するためのコンテンツがロードされていることです。 .htaccessとPHPはどちらも、サブドメインにリダイレクトするなど、代替コンテンツを読み込むことができますが、複数のリクエストを処理するのではなく、ユーザの方がはるかに速く軽く、サーバでは軽いので理想的です。 '.htaccess'は、Apacheのレベルでリダイレクトを実行するための最良の解決策です。 –

+0

こんにちはああ、ページペイントの前にこれを実行する必要があります。関数preloadFunc() { アラート( "PreLoad"); } window.onpaint = preloadFunc(); – Edig

+0

いいえ、それはまだ悪いことです...あなたは既にそれがずっと遅く起こっていることを意味するJavascriptを使用しています。 Apache> PHP> Javascript。まずコンテンツ配信やリダイレクトのためにApacheレベルから作業してください。それが不可能な場合は、PHPを使用して、代わりに場所のヘッダーを別の場所にスローすることができますが、Javascriptはリダイレクトの絶対的な最後の手段としてのみ使用する必要があります。 - この場合は必要ありません。 –

0

これらの回答は、タブレットを携帯端末から分離するまで問題なく動作します。より良い一致を得るには、クラス別にタブレット/コンソール/モバイルを分離できるHandset Detection(免責事項:私のスタートアップ)が必要です。 APIキットやJavascriptを搭載したデバイスでサーバサイドを検出できます。

関連する問題