私のウェブサイトには2つのバージョンがあります。デスクトップとモバイルのバージョン。「デスクトップデスクトップ」をリダイレクトする方法は?
ユーザーがスマートフォンで自分のウェブサイトにアクセスすると、「モバイル版」 - >「m.mywebsite.com」と表示されます。それを作るために
、私はこれまでのところは良いMobile Detect
と呼ばれるプロジェクトを使用しています。
「モバイル版」には、「デスクトップ版」にリダイレクトするボタン(「デスクトップ版に切り替える」)があります。問題は、 "Mobile version"では、 "Switch to Desktop Version"ボタンをクリックしたときにループしてしまうことです。
例:
---> "デスクトップバージョンに切り替え"ボタンをクリックします。
--->ページは「www.mywebsite.com」を指しています。
--->ページの更新が完了しました。
--->ユーザーがスマートフォンにいるため、スクリプトは再度読み込まれ、ユーザーは「m.mywebsite.com」にリダイレクトされます。
どうすれば解決できますか?
スマートフォンでデスクトップ版にユーザーをリダイレクトする方法はありますか?
マイコード:
<?php
require_once 'Mobile_Detect.php';
$detect = new Mobile_Detect;
?>
<!DOCTYPE html>
<html>
<head>
<?php if($detect->isMobile()) : ?>
<script type="text/javascript">
window.location.href = "http://m.mywebsite.com.br";
</script>
<?php endif ?>
</head>
<body>
<div class="wrapper" style="height: 100vh; display: flex; justify-content: center; align-items: center; flex-direction: column">
<h1>MOBILE VERSION</h1>
<a href="http://www.mywebsite.com.br">SWITCH TO DESKTOP VERSION</a>
</div>
</body>
</html>
--------- --------- UPDATE
感謝の@Uriel、あなたが問題を解決することができます。今は私が望むように働いているページ。アドレスhttp://www.mywebsite.com.br&force_desktop=true
へのリンク
<a href="http://www.mywebsite.com.br">SWITCH TO DESKTOP VERSION</a>
のアドレスを設定し
<?php
require_once 'Mobile_Detect.php';
$detect = new Mobile_Detect;
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf8">
<?php if($detect->isMobile() && (!isset($_GET['force_desktop']) || $_GET['force_desktop'] == 'false')) : ?>
<?php if($detect->isMobile()) : ?>
<script type="text/javascript">
window.location.href = "http://m.mywebsite.com.br";
</script>
<?php endif ?>
<?php endif; ?>
</head>
<body style="padding: 0; margin: 0">
<div class="wrapper" style="height: 100vh; display: flex; justify-content: center; align-items: center; flex-direction: column">
<h1>DESKTOP VERSION</h1>
</div>
</body>
</html>
デスクトップバージョンが要求されたという事実を保存し、その選択肢があればリダイレクトしないでください。例えばクッキーを設定し、クッキーを確認してください。 –
モバイルサイトに人を強制しないでください。これは問題ではありません。ユーザーとして、通常のサイトを読み込み、自分のユーザーエージェントのためにリダイレクトされることは、最も不快なものの1つです。 – ssube
おそらくユーザーがリダイレクトするときに、セッションを使用してユーザーの優先クライアントを追跡します。 $ _SESSION ["prefered-client"] = "MOBILE"または$ _SESSION ["prefered-client"] = "DESKTOP"。ページがロードされると、このセッション値をチェックし、1)設定されていない場合、または2)優先クライアントにない場合のみリダイレクトします。クッキーを使用することもできます。 –