2016-10-20 5 views
1

私のウェブサイトには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> 
+0

デスクトップバージョンが要求されたという事実を保存し、その選択肢があればリダイレクトしないでください。例えばクッキーを設定し、クッキーを確認してください。 –

+0

モバイルサイトに人を強制しないでください。これは問題ではありません。ユーザーとして、通常のサイトを読み込み、自分のユーザーエージェントのためにリダイレクトされることは、最も不快なものの1つです。 – ssube

+0

おそらくユーザーがリダイレクトするときに、セッションを使用してユーザーの優先クライアントを追跡します。 $ _SESSION ["prefered-client"] = "MOBILE"または$ _SESSION ["prefered-client"] = "DESKTOP"。ページがロードされると、このセッション値をチェックし、1)設定されていない場合、または2)優先クライアントにない場合のみリダイレクトします。クッキーを使用することもできます。 –

答えて

0


携帯をチェックするときそして、このGET変数はfalseである(または存在しない)ことも確認してください。

if($detect->isMobile() && (!isset($_GET['force_desktop']) || $_GET['force_desktop'] == 'false')) 

そうすれば、モバイルはのみをロードします真のforce_desktop変数がない場合、はモバイルを使用します。

+0

私の問題を解決してください。どうもありがとう!誰かが必要なら私の質問を更新しました。 – Zkk

関連する問題