我有一个网站叫
www.example.com
我有一个移动网站,名为
m.example.com
首先,我想自动从桌面版本重定向到移动网站(如果仅是移动网站......我想检测所有移动版本)
然后我想使用 htaccess 自动将主网站 URL 重定向到移动版本..
但是,移动版本上有一个链接指向主网站,称为
www.example.com/?nm=1
(nm
mean nomobile
)
我想为此设置 cookie..(redirect to desktop site from mobile site)
如果用户在过去一段时间后再次回来..我想检查 hv cookie..(check www.example.com/?nm=1 set cookie earlier)
如果没有 cookie 自动重定向到移动版本...如果有 cookie 想保留在桌面版本。
我怎样才能通过htaccess
没有 JavaScript。
这个答案 https://stackoverflow.com/a/20820566/2209007为您解决部分问题。就像这个答案一样,我不会为您建议包含用户代理的列表。找到适合您的列表,并将其放入规则中。移动设备的类型、移动设备中的浏览器等不断变化,这个答案在我发布之前就已经过时了。您需要稍微调整该规则,以防止它在 cookie“nomobile”设置为“1”时匹配。您需要一条规则来查看 url 中的“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]
请检查cookie 的文档 http://httpd.apache.org/docs/current/rewrite/flags.html#flag_co以便在您的特定站点上正确使用 CO 标志。上面的代码未经测试,但理论上它应该可以工作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)