ApacheによるIE8対策
さて、いよいよWindows7のリリースとなりましたが、
Web業界に携わっている人間としてはIE8対応が気になるところです。
これまでのIEでは、CSSの解釈がW3Cのソレとは差異があったため
専用に対策を施すハメになることが往々にしてありました。
IE8では、レンダリング機能が改善され「CSS 2.1準拠」となった事で
これまでのIE対策があだになる可能性があります。
マイクロソフトの対応
このレンダリングの変更に伴いIE8では「互換表示」機能により
IE5/IE7/IE8のそれぞれのバージョンのレンダリングを表現します。
なお、このレンダリングモードは、「X-UA-Compatible」ヘッダー
によって指定することが可能です。
モード名称 | X-UA-Compatible値 | 機能 |
---|---|---|
IE5 モード | IE=IE5 | IE5モードで表示 |
IE7 モード | IE=IE7 | IE7モードで表示 |
IE8 モード | IE=IE8 | IE8モードで表示 |
edge モード | IE=edge | 使用可能な最高のモードで表示 |
IE7 エミュレートモード | IE=EmulateIE7 | を使用してレンダリング方法を決定 |
IE8 エミュレートモード | IE=EmulateIE8 | を使用してレンダリング方法を決定 |
Apacheによる対策の実施
さて、「X-UA-Compatible」ヘッダーの設定方法ですが、
タグを使用してHTML上で対応することも可能です。
<head> <!-- Mimic Internet Explorer 7 --> <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" /> <title>My Web Page</title> </head>が、既存のWebサービスの対応を考えるとこの方法では無理があります。
そこで、WebサーバをApacheで運用している場合は下記の設定を
httpd.confに追記することで、Webサーバが自動的にヘッダーを
追加してくれます。
ローダブルモジュールを有効にする
LoadModule headers_module modules/mod_headers.so
追加ヘッダーを登録する
Header set X-UA-Compatible "IE=EmulateIE7"※ここでは、例として"IE=EmulateIE7"としています。
なお、対象ディレクトリのみという場合は、Locationで指定可能です。
Header set X-UA-Compatible “IE=EmulateIE7”
以上