[英]How to detect the user OS/browser info in web(using php, js, html)?
我们制作两个版本设置包,win-32.msi和win-64.msi,并将它们放到我们的网站供用户下载。
但我只是想使用一个网络链接。 当用户使用windows-32bit操作系统点击链接时,他会获得win-32.msi,使用windows-64-bit操作系统将获得win-64.msi。
我们在我们的网络代码中使用php,js,html,在apache中设置。
我们之前使用过一种方法:browsercap.ini。 但我们在win8-64bit中发现IE10浏览器给我们带来win8-32bit信息,这是错误的。
还有其他解决方案吗?
在Javascript中,您可以使用navigator对象获取有关本地系统的一些信息:
console.log(navigator.appVersion);
在我的系统上,这会产生:
5.0(Macintosh; Intel Mac OS X 10_8_4)AppleWebKit / 537.36(KHTML,与Gecko一样)Chrome / 30.0.1599.69 Safari / 537.36
然后,您可以解析此问题以确定发送用户的位置。
作为替代方案,您也可以使用mod_rewrite
并查看HTTP_USER_AGENT
变量在Apache
执行此操作。 有关这方面的更多信息可以在mod_rewrite文档中找到。
像这样的东西可以工作:
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (WOW64|OtherMatch)
RewriteRule ^(/path/to/dl-packages)/win-32.msi $1/win-64.msi [R,L]
这更多是为了显示基本概念,你可能想要调整应该匹配64位客户端的(WOW64|OtherMatch)
字符串,不确定WOW64
是否匹配所有Windows 64位浏览器。 此外,我将URL
与我的RewriteRule
中的win-32.msi
包匹配,这将是默认包,如果64位客户端尝试获取它,它将被重定向到64位版本。 根据您的网站,您可能希望以不同方式处理此问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.