0

我想根据他/她使用的浏览器和浏览器版本将用户重定向到另一个网页。

我知道这可以通过简单的 javascript 代码以及带有HTTP_USER_AGENT参数的 PHP 来完成。但是,这两种方法都可以通过停用 javascript 或手动更改 user_agent 来规避。

我的问题是:有没有办法让客户没有机会逃避它?

4

3 回答 3

2

您最好的选择是检查用户代理并发出301 移动永久重定向标头,除了“此页面已移动”消息之外,正文中没有任何有意义的内容。浏览器要么服从它,要么呈现一个空文档。重要的是要认识到用户代理字符串是可选的,您绝对不应该将其作为使用网站的必需部分。

请注意,您的态度与互联网的整个本质是对立的。没有办法强迫用户的浏览器做任何事情,也不应该有,永远。所有行为都是完全可选的,用户可以自由地获取您的网站或网站的部分内容,并以编程方式对您发送给他们的数据做任何他们想做的事情。

于 2013-02-21T14:43:36.770 回答
1

简单的回答:没有

这将使生活变得更轻松,但浏览器更重视用户的隐私,而不是网站建设者的愿望。

您能做的最好的事情就是使您的网站尽可能向下兼容。

我经常遇到的唯一罪魁祸首是 6 到 10 的各种版本的 IE,它们都需要不同的样式表规则。

我会简单地用在头上

<head>
<!--[if IE 6]>
<link rel="stylesheet" href="ie6.css">
<![endif]-->
<!--[if IE 7]>
<link rel="stylesheet" href="ie7.css">
<![endif]-->
<!--[if IE 8]>
<link rel="stylesheet" href="ie8.css">
<![endif]-->
<!--[if IE 9]>
<link rel="stylesheet" href="ie9.css">
<![endif]-->
<!--[if IE 10]>
<link rel="stylesheet" href="ie10.css">
<![endif]-->
于 2013-02-21T14:46:23.377 回答
1

您只能通过网络上的文本字符串与客户端进行通信。如果客户不想告诉你他真正的用户代理,你真的无能为力。

于 2013-02-21T14:44:26.693 回答