IE定向到不同站点的条件PHP?

IE定向到不同站点的条件PHP?,php,internet-explorer,conditional,Php,Internet Explorer,Conditional,我对php很陌生,所以请容忍我:) 我正在尝试创建一个网页,它可以使用php中的get\u user\u browser函数将用户引导到一个单独的HTML页面 我的网站是,我刚刚意识到它在IE中几乎看不见。除非有不同的方法来解决这个问题,否则我想创建一个独立的静态HTML网站,供IE用户查看 任何反馈都会非常有用 <?php $useragent = $_SERVER['HTTP_USER_AGENT']; if( strpos($useragent,"MSIE 6.0") ) {

我对php很陌生,所以请容忍我:)

我正在尝试创建一个网页,它可以使用php中的
get\u user\u browser
函数将用户引导到一个单独的HTML页面

我的网站是,我刚刚意识到它在IE中几乎看不见。除非有不同的方法来解决这个问题,否则我想创建一个独立的静态HTML网站,供IE用户查看

任何反馈都会非常有用


<?php
$useragent = $_SERVER['HTTP_USER_AGENT'];  
if( strpos($useragent,"MSIE 6.0") ) { 

  header("Location: http://google.com"); 

}
?>
如果需要,您可以添加更多的


然而,就像约翰在评论中提到的那样。我建议您创建一个单独的样式表并创建回退设计,而不是重定向到另一个页面。

首先,需要注意的是,不建议在服务器上检测浏览器,因为浏览器可能会提供虚假的用户代理详细信息,或者根本不提供。(我知道一些防火墙产品经常从http头中删除此类数据)

其次,只有当您拥有有效的
browsecap.ini
文件时,才能使用
get\u user\u browser
功能。如果您在使函数工作时遇到问题,请检查您是否有此ini文件,并且该文件是否是最新的。(还请注意,无论何时发布新浏览器或浏览器版本,都需要对其进行更新)

最后,大多数(几乎所有)IE特定的显示问题都可以解决,而无需为IE创建单独的页面

特别是在您的情况下,我可以在查看页面的HTML源代码时立即看到问题所在:

问题在于
前面代码第一行中的
。我假设这是一些调试代码的遗留问题,这些代码没有被正确删除

这将导致IE陷入“怪癖模式”,因为IE看到了
,并假设它没有doctype。在没有doctype的情况下,IE假定页面应处于怪癖模式

怪癖模式使IE的呈现引擎以完全不同的方式显示页面(基本上是IE5向后兼容模式),所以难怪你的页面在IE中看起来像垃圾

这种行为在IE的所有版本中都是相同的

如果你有其他IE特有的问题,最好在页面上解决,因为有很多工具和黑客可以让IE更好地工作


希望这能有所帮助。

你真的应该解决你的问题,因为你的网站没有理由不工作,更不用说仅仅因为浏览器问题就有两个不同的网站了。你测试的是什么版本的IE——如果在IE8中几乎看不到,那么可能需要做一些工作,但如果是在IE6中,那就真的不重要了,除非你有特定的理由支持旧浏览器。我不认为这个问题很有建设性。在stackoverflow上,重定向被广泛地覆盖,而黑客绕过IE并不会给其他读者提供好的建议。good spot@Spudley.:)<代码>
确实会触发怪癖模式。@Dana,不要使用
strpos()
方法!从Spudley的回答中得到建议,并以一种严肃的态度处理任何IE特定的问题。@JamWaffles这也是我在回答的最后所说的。条件样式表和回退是最好的。但我猜她不想做那么多工作。