0

スマートフォン ユーザーを書き換えルールでクラシック サイトからモバイル サイト (同じドメイン内) にリダイレクトしたい。モバイル サイトには、従来のサイトにリダイレクトするボタンが必要です。これは、Cookie が設定されているかどうかを証明する書き換え条件によって実現する必要があります。そこで、次の .htaccess を書きました。

# Rewrite Condititions
RewriteCond %{HTTP_USER_AGENT} "smartphone|rover|ipaq|au-mic,|alcatel|ericy|vodafone\/|wap1\.|wap2\.|iPhone|android"[NC]
# Do not rewrite when cookie is set
RewriteCond %{HTTP_COOKIE} !^.*backtoclassic.*$
# Rewrite Rule for mobile
RewriteRule ^(.*)/$ /index.php?id=104 [L,R=301]
# End rule for mobile

モバイル サイト (../index.php?id=104) は jquery モバイルで動作します。私はajaxを延期しました。「back-to-classic-site-button」は、次のコードによって「backtoclassic」という名前の Cookie を取得します。

$(document).on('pageinit',function(e,data){    
  ...
  ...
  $(document).on('click', '#classicsite',function(e) {
    $.cookie('backtoclassic', 'backtoclassic');
  });
});

ボタン自体には、typo3 のセットアップで次のコードがあります。

### Back-to-Classic-Site ###
lib.classic = TEXT
lib.classic.value = <a href="/" rel="external" data-role="button">back</a>

もちろん、ボタンをクリックしたときに Cookie が正しく設定されているかどうかは証明されました。これはこれまでのところ機能します。しかし、問題は次のとおりです。ボタンをクリックすると、Cookie が設定され、ブラウザー (この場合は iPhone のサファリ) が従来のサイトにアクセスしようとします。しかし、再びモバイル サイトにリダイレクトされます。サファリに「手動で」URLを入力すると、最初の試行でモバイルサイトにもリダイレクトされます。クラシックURLを2回目に入力すると、クラシックサイトに到達します!! これは奇妙なことです...次に、次のことを試しました: http_user_agent-condition を削除し、モバイル サイトではなく、クラシック サイトの別のサイトで試しました。「non-jquery-」リンクが機能します。jquery/jquery mobile と何か関係があるのではないでしょうか? ご協力いただきありがとうございます!!

4

1 に答える 1

0

ここでいくつかの反対票を投じるリスクがありますが、「クラシック/モバイル」サイトは使用せず、RWD http://en.wikipedia.org/wiki/Responsive_web_designを使用してください

複数サイトアプローチで発生する多くの問題を解決します

于 2013-08-31T20:46:52.110 に答える