Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在web中检测用户操作系统/浏览器信息(使用php、js、html)?_Javascript_Php_Html_Windows_Apache - Fatal编程技术网

Javascript 如何在web中检测用户操作系统/浏览器信息(使用php、js、html)?

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位信息是错误的 那么还有其他解决方

我们制作了两个版本设置包,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将是错误的。。