我想通过重写规则将智能手机用户从经典站点重定向到我的移动站点(在同一域中)。在移动站点上应该有一个按钮,可以重定向到经典站点。这应该通过重写条件来实现,该条件证明是否设置了 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 mobile。我推迟了ajax。“返回经典站点按钮”通过以下代码获取名为“返回经典”的 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 上的 safari)尝试访问经典站点。但随后我再次被重定向到移动网站。当我“手动”在 safari 中输入网址时,第一次尝试时我也会被重定向到移动网站。当我第二次输入经典网址时,它可以正常工作,我到达了经典网站!这很奇怪......然后我尝试了以下操作:我删除了 http_user_agent-condition 并没有在移动网站上尝试,而是在我的经典网站的另一个网站上尝试。那里的“非jquery-”链接有效。所以我认为这可能与 jquery/jquery 移动有关?谢谢你的帮助!!