自动检测手机浏览器(通过用户
如何检测用户是否正在通过移动Web浏览器查看我的网站,以便我可以自动检测并显示我的网站的相应版本?
是的,阅读User-Agent头文件就可以解决问题。
有一些已知的移动用户代理列表,所以你不需要从头开始。 我在做什么的时候需要建立一个已知用户代理的数据库,并在检测到修改时存储未知数,然后手动弄清楚它们是什么。 在某些情况下,这最后一件事可能会矫枉过正。
如果您想在Apache级别执行此操作,则可以创建一个脚本,该脚本定期生成一组检查用户代理的重写规则(或者只是一次,忘记新的用户代理,或每月一次,无论适合您的情况),就像
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (OneMobileUserAgent|AnotherMobileUserAgent|...)
RewriteRule (.*) mobile/$1
例如,请求将http://domain/index.html移动到http://domain/mobile/index.html
如果您不喜欢让脚本定期重新创建htaccess文件的方法,您可以编写一个模块来检查用户代理(我没有找到已经创建的用户代理,但发现这个特别合适的示例)并获取用户代理从一些网站更新它们。 然后,您可以尽可能多地使方法复杂化,但我认为对于您的情况,以前的方法会很好。
Detect Mobile Browser上有开源脚本,可以在Apache,ASP,ColdFusion,JavaScript和PHP中执行此操作。
只是一个想法,但如果你从相反的方向来解决这个问题呢? 而不是确定哪些浏览器是移动的,为什么不确定哪些浏览器不是? 然后将您的网站编码默认为移动版本并重定向到标准版本。 在查看移动浏览器时有两种基本的可能性。 要么有javascript支持,要么没有。 所以如果浏览器没有JavaScript支持,它将默认为移动版本。 如果它支持JavaScript,请检查屏幕大小。 低于一定大小的任何内容都可能是移动浏览器。 任何更大的将被重定向到您的标准布局。 然后,您需要做的就是确定禁用JavaScript的用户是否是移动用户。
根据W3C,禁用JavaScript的用户数量约为5%,大多数用户已将其关闭,这意味着他们实际上知道他们正在使用浏览器做什么。 他们是你观众的很大一部分吗? 如果没有,那么不要担心他们。 如果是这样,最坏的情况是什么? 你有这些用户浏览你的网站的移动版本,这是一件好事。