4

デバイスに基づいてモバイル リダイレクト ディレクトリを正常にセットアップしましたが、クライアントは完全なサイトへのリンクを求めています。

RewriteEngine on
Options +FollowSymlinks -MultiViews

RewriteBase /
RewriteCond %{HTTP_HOST} ^mysite.com$ [NC]
RewriteCond %{REQUEST_URI} !^/mobile/.*$
RewriteCond %{HTTP_USER_AGENT} **{mobile dectection code I removed for this post}**
RewriteRule ^(.*)$ /mobile/ [L,R=302]

rewriteengine をオフにした .htaccess ファイルをモバイル Web サイトのディレクトリに配置しました。

モバイル Web サイトとメイン Web サイトの両方が同じドメインを使用している場合に使用する書き換え条件について何か考えはありますか? または、モバイル Web サイト用に別のドメインを作成した方が簡単ですか?

4

1 に答える 1

2

RewriteCondチェックする別のものを追加してから%{REQUEST_URI} !^/no-mobile/.*$、 に書き換える/no-mobile/ことができ/ます。これにより、サイト全体を表示したいモバイル ユーザーが へのリンクを取得できるようになります/no-mobile/

代替 PHP ソリューション

モバイル ユーザーが両方を使用できるようにする方法がクライアントに必要な場合は、php を使用できます。PHP で同じHTTP_USER_AGENTチェックを行い、サイトにヒットしたときにユーザーをリダイレクトします。

ボタンをクリックした場合は、設定した場所Full Siteなどにリダイレクトする必要が/force-desktopあります$_SESSION['no_mobile'] = true。次に、これを次のように最初のモバイル チェックに組み込むことができます。

full-site.php:

<?php

session_start();

$_SESSION['no_mobile'] = true;

header('Location: /mobile');
die();

次に、ページがサイトにロードされたときのチェック (悲しいことに、すべてのページでそれを行う必要があります):

if($is_mobile === true && !isset($_SESSION['no_mobile']){
    header('Location: /mobile');
    die();
}
于 2013-08-14T22:57:34.307 に答える