从开放网站禁止Internet Explorer 6.0浏览器?

时间:2011-02-28 17:50:58

标签: php javascript html internet-explorer

由于某些安全原因,我正在开发一个我想禁止在IE 6.0浏览器中打开的网站。我知道每个浏览器都有一个唯一的标题信息,当我们请求网页时发送,所以我可以阻止我的网站在IE 6.0或任何浏览器中使用javascript,php或使用任何东西吗?

9 个答案:

答案 0 :(得分:4)

<!--[if (gt IE 6)|!(IE)]><!--> <html> Entire website? </html> <!--<![endif]-->

说真的,你可以使用IE条件评论àlaHTML5 Boilerplate

<!doctype html>  
<!--[if lt IE 7 ]> <html lang="en-us" class="no-js ie6"> <![endif]-->
<!--[if IE 7 ]>    <html lang="en-us" class="no-js ie7"> <![endif]-->
<!--[if IE 8 ]>    <html lang="en-us" class="no-js ie8"> <![endif]-->
<!--[if IE 9 ]>    <html lang="en-us" class="no-js ie9"> <![endif]-->   
<!--[if (gt IE 9)|!(IE)]><!--> <html lang="en-us" class="no-js"> <!--<![endif]-->
<head>
  <meta http-equiv="X-UA-Compatible" content="IE=Edge;chrome=1" >
  <meta charset="utf-8">
  ...

答案 1 :(得分:4)

对于IE来说它很容易,因为微软添加了特殊的标签,你可以检测出哪些IE版本。它比尝试使用User-Agent标头更可靠。这样的事情应该起作用(在HTML的头部)

<!--[if lte IE 6]>
<meta http-equiv="refresh" content="0;url=http://yoursite.com/ie6_is_a_steaming_pile.html">
<[endif]-->

显然用您自己的网站替换链接,可能更巧妙; - )

答案 2 :(得分:3)

你可以使用这样的条件评论。

<!--[if IE 6]>
Special instructions for IE 6 here
<![endif]-->

未修改版本的Internet Explorer 6将运行此代码,其他浏览器则不会。但我不知道这是否满足您的安全考虑。一切都可以伪造。

你也可以查看标题信息,但问题是同样的......

请告诉我们更多关于您在这里尝试做什么的信息。

答案 3 :(得分:2)

您可以在每个页面上包含一些简单的PHP来捕获MSIE用户:

if(preg_match('/MSIE/i',$_SERVER['HTTP_USER_AGENT'])){
   die('Your browser is not allowed');
}

还有许多其他更复杂和全面的方法可以实现这一目标。

答案 4 :(得分:1)

当然,检查this out(CGI方法,PHP方法,JS方法)
PHP:

    <?php
   if (eregi("MSIE",getenv("HTTP_USER_AGENT")) ||
       eregi("Internet Explorer",getenv("HTTP_USER_AGENT"))) {
    Header("Location: http://www.domain.com/ie_reject.html");
    exit;
   }
?>

<强> JS:

<!--
if (navigator.appName == "Microsoft Internet Explorer") {
        document.location = "http://www.domain.com/ie_reject.shtml"; 
} else { 
        document.location = "http://www.domain.com/realhomepage.html";
}
// -->

答案 5 :(得分:1)

如果你真的想这样做......

在PHP中:

if (strpos($_SERVER['HTTP_USER_AGENT'], "MSIE 6")) {
  // exit or redirect or whatever...

  exit();
}

答案 6 :(得分:1)

更新并同时向他们传授课程:

http://ie6update.com/

好的,所以它不会完全阻止它们。但它可能会欺骗他们中的一些人摆脱被称为IE6的邪恶祸害。 Darn微软!

答案 7 :(得分:0)

真正的答案是:你做不到。出于安全原因,标题中的某个UA太容易被欺骗使用它,如果有人想在不允许它的应用程序上使用IE6,可以使用简单的代理来完成它,让应用程序思考它是IE8。

也就是说,您可以使用get_browser函数轻松地在PHP中完成它。

请参阅http://php.net/get_browser

答案 8 :(得分:0)

我会说:做得对吗!有一个专门的类,跟踪所有浏览器和设备的所有USER_AGENTS,创建它们的数据库并将其集成到您的工作Session例程。每次用户进入时,确定他的用户代理信息[类型,名称和版本],然后将数据传递给您的显示例程,这些例程应确定要打印的内容和设计模板。通过这种方式,您可以构建一个SEO友好,用户友好,整洁且易于组织的网站[=开发人员友好] - 一体化,这在今天的互联网上偶然发现是非常罕见的......所以,做得对!