ふろしき Blog

コンテンツサービスを科学する株式会社ブートストラップ代表のブログ

IE11のユーザエージェント問題 - 運用者側でできる対策(Apache HTTP Server/IISの設定変更)

運用しているWebサイト/システムがIE11からのアクセスへ対応できない場合、運用者側としてはHTTPヘッダを利用した対策を行うことができます。

対策可能な範囲としては、以下2つが挙げられます。

  1. アクセス元のWebブラウザの互換性モードを制御する
  2. アプリケーションへ透過的にIEであることを認識させる

前者はWebブラウザ上で動作が正常に行われなかった場合、後者はサーバ上のアプリケーションの動作が正常に行われなかった場合の対策です。どちらもミドルウェア製品のパラメータ設定の変更のみで対処が可能です。

当然ですが、これらの対処にはサーバの停止が必要になります。また、他の設定との競合などの問題により、動作が確実に保証されるものではないため、事前の動作検証が必要です。

1. アクセス元のWebブラウザの互換モードを制御する

サーバからIEの互換モードを制御して、IE10以下のWebブラウザの動作を再現させることができます。新規開発/制作では良い方法とは言えませんが、既存のWebサイト/システムを最小の変更のみで維持するには有効な手段です。

対策は、HTTPレスポンスヘッダへIEの互換モードを制御する、「X-UA-Compatible」というプロパティを追加することによって実現できます。どのWebサーバの製品を使うかによって、その制御方法は様々です。

ここでは、「Linuxベース(Apache HTTP Server)「と「Microsoftベース(IIS)」の2つのケースについて対策方法を解説します。

★ ApacheでHTTPレスポンスヘッダにX-UA-Compatibleを追加する

RHEL/CentOS/FedoraでApache HTTP Serverを利用している場合は、「/etc/httpd/httpd.conf」にて、一番最後に以下の内容を追記して下さい。

LoadModule headers_module modules/mod_headers.so
<IfModule headers_module>
   Header set X-UA-Compatible: IE=10
</IfModule>

Apacheに「mod_headers.so」がバンドルされていない場合はエラーになります。予め、インストールして下さい。

Apacheの場合は、「mod_rewrite」を用いたURLによる振り分けを行っているケースが多いでしょう。この場合、以下のルール変更のみで対応可能です。

# ✕ 従来の振り分け判定記述
RewriteCond %{HTTP_USER_AGENT} MSIE
# ◯ IE11対策された判定記述
RewriteCond %{HTTP_USER_AGENT} Trident

★ IISでHTTPレスポンスヘッダにX-UA-Compatibleを追加する

MicrosoftのWindows系OSで「インターネット インフォメーション サービス(IIS)」を利用している場合は、以下の手順になります。

「コンピュータの管理」→「インターネット インフォメーション サービス(IIS) マネージャー」
f:id:furoshiki0223:20131112210814p:plain

「HTTP応答ヘッダー」
f:id:furoshiki0223:20131112210923p:plain
表示内で右クリック、「追記」を左クリック
f:id:furoshiki0223:20131112211023p:plain
「名前(N):」へ「X-UA-Compatible」、「値(V):」へ「IE=10」
f:id:furoshiki0223:20131124004901p:plain

2. アプリケーションへIEであることを認識させる

ユーザエージェントが従来の方式でIEの判定が行えなくなった場合、サーバ上のプログラムが動作不良を起こしてしまうケースもあるでしょう。この場合、ユーザエージェントがサーバ上のプログラムへ渡される前に、従来の方式によって判定できるように偽装を行うことで対処できます。

Linux/Apacheの場合

Apache HTTP Serverには「mod_setenvif」と呼ばれるモジュールがあります。

元は第一次ブラウザ戦争時代に、NetScape用に作られたWebサイトをIEから入れないようにするために作られたものでしたが、今回はその逆で、Firefox(旧NetScape)のふりをしたIEを受け入れるために利用できます。時代の流れとは、恐ろしいものです。

http://httpd.apache.org/docs/2.2/mod/mod_setenvif.html

(※ 本記事は現在「執筆中」のステータスです。)

IE11のユーザエージェント問題 - 対策方法の全て

このブログの筆者について

川田 寛

コンテンツサービスの開発や運営代行を専門とする集団「株式会社ブートストラップ」の社長です。ネットではふろしきと呼ばれています。

2009年にNTTグループへ新卒入社し、ITエンジニアとしてクラウド技術・Web技術の研究開発と技術コンサルティングに従事。2015年よりピクシブに入社し、エンジニアリングマネージャー・事業責任者・執行役員CCOなど、様々な立場からコンテンツサービスの事業づくりに関わりました。2021年にメディアドゥへVPoEとしてジョインし出版関係の事業に関わったのち、2023年に独立しています。

関わってきたインターネット事業としては、ECサービスのBOOTH、UGCプラットフォームのpixiv(主に海外展開)、制作ツールのpixiv Sketch、VR・VTuber関連ではVRoid、Wikiサービスのピクシブ百科事典など、10を超える多様なCtoCコンテンツサービス。また、NTTドコモのすご得コンテンツ、メディアドゥのWeb3サービスであるFanTopなど、いくつかのBtoCコンテンツサービスにも関わってきました。

幸運なことに、私はコンテンツに関係する幅広いインターネットサービスのテクノロジー&ビジネスの知識を得ることができました。これを日本のコンテンツ発展に役立てたいと思い、株式会社ブートストラップを創業しました。

このブログでは現在、出版社やIPホルダー、ライセンサーといったコンテンツに関わる人々に向けて、インターネット事業に関するTipsや業界内のトレンドなどの情報を発信しています。私と話をしてみたいという方は、以下のフォームより気軽にご連絡ください。

お問い合わせフォーム