Javascript 如何在web中检测用户操作系统/浏览器信息(使用php、js、html)?
我们制作了两个版本设置包,win-32.msi和win-64.msi,并将它们放到我们的网站上供用户下载 但我只想使用一个web链接。当用户使用windows-32位操作系统单击链接时,他将获得win-32.msi,使用windows-64位操作系统将获得win-64.msi 我们在web代码中使用php、js和html,设置为apache 我们以前使用过一种方法:browsercap.ini。但我们发现IE10浏览器在win8-64位给我们提供的win8-32位信息是错误的Javascript 如何在web中检测用户操作系统/浏览器信息(使用php、js、html)?,javascript,php,html,windows,apache,Javascript,Php,Html,Windows,Apache,我们制作了两个版本设置包,win-32.msi和win-64.msi,并将它们放到我们的网站上供用户下载 但我只想使用一个web链接。当用户使用windows-32位操作系统单击链接时,他将获得win-32.msi,使用windows-64位操作系统将获得win-64.msi 我们在web代码中使用php、js和html,设置为apache 我们以前使用过一种方法:browsercap.ini。但我们发现IE10浏览器在win8-64位给我们提供的win8-32位信息是错误的 那么还有其他解决方
那么还有其他解决方案吗?在Javascript中,您可以使用该对象获取有关本地系统的一些信息:
console.log(navigator.appVersion);
在我的系统上,这会产生:
5.0(Macintosh;英特尔Mac OS X 10_8_4)AppleWebKit/537.36(KHTML,类似Gecko)Chrome/30.0.1599.69 Safari/537.36
然后,您可以对其进行解析,以确定将用户发送到何处。您也可以在
Apache
中使用mod\u rewrite
并查看HTTP\u user\u AGENT
变量来执行此操作。有关这方面的更多信息,请参阅文档
类似这样的方法可能会奏效:
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位版本。根据您的站点,您可能希望以不同的方式处理此问题 请查看链接:这可能会对您有很大帮助。我想知道操作系统的位版本,32或64。browsercap.ini包含完整信息。它几乎在同一时间运行良好,但win8-64 IE10将是错误的。。