スマートフォン ユーザーを書き換えルールでクラシック サイトからモバイル サイト (同じドメイン内) にリダイレクトしたい。モバイル サイトには、従来のサイトにリダイレクトするボタンが必要です。これは、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 と何か関係があるのではないでしょうか? ご協力いただきありがとうございます!!