使用Apache vhost config无法禁用IE兼容模式

时间:2011-01-14 12:03:19

标签: html apache internet-explorer

我在尝试禁用IE的兼容模式时遇到了一个大问题。

经过多次敲击后,我已将问题追溯到该网站是作为Apache的默认配置还是作为虚拟主机提供。

我知道这是因为当我使用'localhost'域访问该网站时,一切都很好。只要我通过虚拟主机中配置的域访问同一页面,该站点就会以兼容模式呈现。

任何人都可以对这个疯狂的问题有所了解吗?

不能选择将网站作为默认主机。

  • 迪安

2 个答案:

答案 0 :(得分:1)

阿公顷!

来自here(强调我的):

  

如今,大量的业务线网站都支持Internet Explorer 7。为了保持兼容性, Internet Explorer 8附带基于区域评估的智能默认值。在默认状态下,公共Internet上的所有站点都以Internet Explorer 8标准模式(兼容性视图关闭)显示,所有Intranet网站都以Internet Explorer 7标准模式(兼容性视图)显示。

     

...

     

如果您导航到本地Intranet上的网站,例如http://myPortalhttp://sharepoint/sites/mySite,则Internet Explorer 8会使用用户代理字符串“7”,版本矢量为“7”来标识自己,并显示网页在Internet Explorer 7标准模式下触发标准模式。这种组合允许在Internet Explorer 7中正常工作的网页在IE8中继续这样做。

我不是在评论这个。我确信这有一些很好的现实世界的原因,但我仍然有冲动在桌面上的冲动。

答案 1 :(得分:0)

当在本地int ra 网络上提供网站时,Internet Explorer将(默认情况下)切换到IE7兼容模式。

您可以通过在页面中添加X-UA-Compatible响应标头来禁用此“Intranet兼容模式下的IE7”

HTTP/1.1 200 OK
X-UA-Compatible: IE=8

您还可以通过在文档的meta http-equiv中添加HEAD>元素,将http响应头的等效添加到您的网页。 E.g:

<!DOCTYPE html>
<html>
   <head>
   <title>Hello world!</title>
   <meta http-equiv="X-UA-Compatible" content="IE=9">
   </head>
<body>

</body>
</html>

注意:如果确实包含标题

| Header           | Value   |
|------------------|---------|
| X-UA-Compatible  | IE=10   |

到你的html文档,你必须在HEAD中添加足够高的文件,然后才能锁定文档模式 - 然后你就锁定了IE7。

错误示例1

<!DOCTYPE html>
<meta http-equiv="X-UA-Compatible" content="IE=8">
<html lang="en">
<head>

meta个元素属于head元素

错误示例2

<!DOCTYPE html>
<html lang="en">
<head>
   <title>Hello, world!</title>
   <link rel="stylesheet" type="text/css" media="all" href="main-73c2257f2d.css" />
   <meta http-equiv="X-UA-Compatible" content="IE=8">

X-UA-Compatible元素必须首先出现在head中;除title和其他meta元素外。

  

X-UA-Compatible标头不区分大小写;但是,它必须出现在除了title元素和其他元元素之外的所有其他元素之前的网页标题(HEAD部分)中。

错误的示例3

<!doctype html>
<!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en"> <![endif]-->
<!--[if IE 7]>    <html class="no-js ie7 oldie" lang="en"> <![endif]-->
<!--[if IE 8]>    <html class="no-js ie8 oldie" lang="en"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
<head>
   <meta http-equiv="X-UA-Compatible" content="IE=10">

条件将浏览器锁定为IE7模式。删除它们。

<强>正确

<!doctype html>
<head>
   <title>Hello, world!</title>
   <meta http-equiv="X-UA-Compatible" content="IE=10">