私は自分のAndroidデバイスでいくつかのテストを行い、ユーザーエージェントを読み、変更されたようです。だから私はこのネイティブオプション作業をするために、セッションに最初のユーザーエージェントを取得し、各ページ要求で送信されたものと比較しました。 ユーザエージェントが同じでない場合は、それがモバイルデバイスであるかどうかを再検証し、trueの場合はセッションuser-agentを新しいものに上書きします。新しい妥当性検査が失敗した場合は、おそらくデスクトップバージョンを探して、新しいヘッダーのリダイレクトを送信する必要があります。
$DesktopSite = 'www.example.com';
$UserAgent = $_SERVER['HTTP_USER_AGENT'];
if (!isset($_SESSION['use_mobile'])){
$_SESSION['use_mobile'] = 1;
$_SESSION['user_agent'] = $UserAgent;
} else if ($_SESSION['user_agent'] != $UserAgent){ // Check if user-agent has changed
if(!preg_match(/*preg match from http://detectmobilebrowsers.com/ */){
$_SESSION['use_mobile'] = 0;
$_SESSION['user_agent'] = $UserAgent; // Overwrite old user-agent with new one.
header("location: $DesktopSite"); // Send visitor to desktop website.
} else {
// Visitor still seems to be mobile.
$_SESSION['use_mobile'] = 1;
$_SESSION['user_agent'] = $UserAgent; // Overwrite old user-agent with new one.
}
}
あなたが初めてデスクトップ上のモバイルウェブサイトを入力した場合、それは最初のセッションが作成されますので、それはデスクトップサイトにあなたを返送しません。こうすることで、返信する代わりに、デスクトップ上のモバイルサイトを確認することができます。ただし、ユーザーエージェントを変更した場合、再検証され、リダイレクトが失敗します。
完全に動作します。これが将来誰にでも役立つことを願っています。
ほとんどの場合、デバイスによってユーザーエージェントが変更されます –