重写条件“如果没有设置cookie” - 重定向到移动网站(与jquery mobile结合使用)

时间:2013-08-31 08:50:02

标签: jquery-mobile redirect apache2 typo3

我想通过重写规则将智能手机用户从经典网站重定向到我的移动网站(在同一个域中)。在移动网站上应该有一个按钮,可以重定向到经典网站。这应该通过重写条件来实现,如果设置了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。 “返回经典网站按钮”通过以下代码获取名为“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上的safari)尝试转到经典站点。但后来我再次被重定向到移动网站。当我“徒手”在safari中输入网址时,那么在第一次尝试时我也会被重定向到移动网站。当我输入经典网址第二次时,它就可以到达经典网站!这很奇怪... 然后我尝试了以下内容:我删除了http_user_agent条件,并尝试使用移动网站但使用我的经典网站的其他网站。那里有“非jquery-”链接。所以我想也许它与jquery / jquery mobile有关? 谢谢你的帮助!!

1 个答案:

答案 0 :(得分:0)

在这里冒一些downvotes,但不要做“经典/移动”网站,请使用RWD http://en.wikipedia.org/wiki/Responsive_web_design

它解决了多站点方法出现的许多问题