使用htaccess将移动重定向到桌面版

时间:2014-05-21 17:16:12

标签: .htaccess mobile cookies

我有一个名为

的网站
www.example.com

我有一个名为

的移动网站
m.example.com

首先,我想自动从桌面版本重定向到移动网站(如果它只是移动版...我想检测所有移动版本)

然后我想使用htaccess自动将主网站URL重定向到移动版本。 但是,移动版本上有一个链接指向名为

的主网站

www.example.com/?nm=1nm表示nomobile

我想为这个设置Cookie .. (redirect to desktop site from mobile site)

如果用户在经过时间之后又来了..我想检查hv cookie .. (check www.example.com/?nm=1 set cookie earlier)如果没有cookie自动重定向到移动版本...如果有cookie想要留在桌面版本。

如何在没有JavaSCript的情况下通过htaccess完成此任务。

1 个答案:

答案 0 :(得分:1)

This answer为您解决部分问题。就像那个答案一样,我不打算为你推荐一个包含用户代理的列表。找到适合您的列表,并将其放入规则中。移动设备的类型,移动设备中的浏览器等都在不断变化,这个答案在我发布之前就已经过时了。你需要稍微调整一下这个规则,以防止它匹配,如果cookie" nomobile"设置为" 1"。你需要一个看到" nm = 1"在网址中并设置Cookie。您可能还想要为那个oookie进行某种重置,我将其标记为" nm = 0"。

RewriteCond %{QUERY_STRING} nm=1
RewriteRule ^ - [CO=nomobile:1:localhost:10000]

RewriteCond %{QUERY_STRING} nm=0
RewriteRule ^ - [CO=nomobile:0:localhost:10000]

RewriteCond %{HTTP_USER_AGENT} ^(user-agent1|user-agent2|user-agent3|etc)$
RewriteCond %{HTTP_HOST} !^m\.example\.com$
RewriteCond %{HTTP_COOKIE} !nomobile=1
RewriteRule ^(.*)$ http://m.example.com/$1 [R,L]

请检查the documentation for cookies,了解特定网站上CO标志的正确使用方法。上面的代码没有经过测试,但理论上它应该可以工作。