让用户保持在移动站点上。

3
我有一个网站,其中有一个简单的.htaccess规则,检查用户是否使用移动浏览器,如果是,则将其重定向到我们的移动站点。问题在于- 如果他们决定转到常规站点(并单击将他们带到那里的链接),他们最终会回到移动站点,因为我们的.htaccess规则将捕捉并重定向它们。
是否有一种简单的方法可以使他们“保留”在常规站点上,即使他们使用移动浏览器,但不需要修改太多代码?
如果这不可能-是否有一个简单而最小的解决方案可以通过代码实现?

1
在代码中,您可以检查HTTP_REFERER,如果是移动站点,则不要重定向。 - Aleks G
4个回答

4
我所做的是在移动站点上提供完整网站的链接。当链接被点击时,我设置了一个 [寿命很短的] cookie,让常规网站知道不要重定向。
重定向到移动站点由 PHP 处理,而不是 htaccess,在常规站点上。PHP 检查 cookie,如果没有找到,则会重定向到移动站点。常规站点还提供了一个链接到移动站点的链接,可以销毁该 cookie。

我的建议也差不多是这样的。 - Julian

0

继续我的评论,您可以通过在mod_rewrite中检查%{HTTP_REFERER}来在.htaccess中执行相同操作。我不确定您当前如何执行重定向,但您可能可以将两个部分组合起来。因此,您最终会得到类似于以下内容的东西:

RewriteEngine On
RewriteCond %{HTTP_REFERER}     !^http://mobile.mydomain.com
RewriteCond %{HTTP_USER_AGENT}  [your check for mobile browser]
RewriteRule ^(.*)$ http://mobile.mydomain.com/$1 [R=301,L]

请注意,我还没有测试过这个代码,所以语法可能有点问题,但是它应该可以帮助你开始。

0
你可以跳过所有的 cookie 相关内容,在 HTTP 头中检查 HTTP referrer。如果 referrer 是你的移动站点,则不要将其重定向到移动站点。
希望这有所帮助。
PS: 我很感兴趣看看你用于检测移动设备的 .htaccess 文件。它的可靠性如何?是否会意外地重定向许多平板电脑?

0

设置一个包含用户选择的覆盖选项的cookie或会话参数。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接