我有一个名为
的网站www.example.com
我有一个名为
的移动网站m.example.com
首先,我想自动从桌面版本重定向到移动网站(如果它只是移动版...我想检测所有移动版本)
然后我想使用htaccess自动将主网站URL重定向到移动版本。 但是,移动版本上有一个链接指向名为
的主网站 www.example.com/?nm=1
(nm
表示nomobile
)
我想为这个设置Cookie .. (redirect to desktop site from mobile site)
如果用户在经过时间之后又来了..我想检查hv cookie .. (check www.example.com/?nm=1 set cookie earlier)
如果没有cookie自动重定向到移动版本...如果有cookie想要留在桌面版本。
如何在没有JavaSCript的情况下通过htaccess
完成此任务。
答案 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标志的正确使用方法。上面的代码没有经过测试,但理论上它应该可以工作。