Windows Internet Explorer 8引入了文本兼容性模式,该模式允许Web 开发人员将浏览器设置为以与旧版本相同的方式呈现它们的页面。可以根据不同的页面或不同的站点指定兼容性模式。
本文档介绍了如何通过在Apache 中使用自定义标头,对每个站点实现Windows Internet Explorer 8 支持的一种很常见的文本兼容性模式— EmulateIE7。
有关 Windows Internet Explorer 8 支持的不同兼容性模式以及如何根据不同页面实现兼容性模式的详细信息,请参阅未来兼容性中的META 标记和锁定。
指定自定义HTTP 响应标头
使用 Apache Web服务器为站点定义自定义标头即可为您的网站指定文本模式。以下自定义HTTP 标头可强制 Windows Internet Explorer 8 以类似Windows Internet Explorer 7 呈现网页的方式呈现网页。
X-UA-Compatible:IE=EmulateIE7:
Apache 2.2
若要使用Apache 2.2 为您的站点指定 HTTP 响应标头,您可使用mod_headers模块提供的 Header 指令。Header 指令几乎可出现在各种配置文件的任意位置,但主配置文件是httpd.conf。可通过在配置部分将它们括起来以限制其范围,如<Location>、<Directory>、<Files> 和<VirtualHost>。
在 httpd.conf 中添加该指令后,由您的服务器发送的属于该范围内的所有页面都将包含X-UA-Compatible HTTP 响应标头。这将强制Windows Internet Explorer 8 使用 EmulateIE7 模式来呈现您的页面。
首先,需要确保服务器初始化期间加载了headers_module。在 httpd.conf 文件中,通过删除headers_module 的 LoadModule 行开始处的“#”,取消对该行的注释。您可以使用文本编辑器(如Notepad)来执行此操作。完成后,该行应如下所示。
LoadModule headers_module modules/mod_headers.so
若要将该标头添加到服务器上的所有页面,请将以下行添加到httpd.conf 文件的 LoadModule 行之后。
Header set X-UA-Compatible“IE=EmulateIE7”
一般不需要将标头应用到服务器上的每个页面。<Location>指令可用于更改 Web 空间中的内容配置,以文本根目录为基点。例如,以下配置可将HTTP 标头应用到任何以 /store 开头的URL 路径。它将应用于针对http://yoursite.com/store 和 http://yoursite.com/store/file.html 的请求以及任何以/store 字符串开头的其他请求。
<Location /store>
Header set X-UA-Compatible“IE=EmulateIE7”
< /Location>
页面覆盖
如果使用Web 服务器指定了默认文本兼容性模式,则可通过在特定的网页中指定其他文本兼容性模式来覆盖该设置。在该网页中指定的模式优先于由服务器指定的模式。
有关如何使用指令配置选项的更多深入信息,请参阅<Location>、<Directory>、<Files> 和<VirtualHost>。有关Header 指令以及如何在配置部分使用该指令的详细信息,请参阅下列文档。
旧版本
下列链接提供了有关如何使用旧版本的Apache Web 服务器将自定义 HTTP 响应标头添加到站点的详细信息。
自定义 HTTP 响应标头和其他Web 服务器
有关 Windows Internet Explorer 8 文本兼容性模式和Internet Information Services (IIS) Web 服务器的详细信息,请参阅在 IIS 上实现META 切换。