SSI : Internet Explorerと、それ以外のブラウザで表示するページ内容を別々にする

書式

<!--#if expr="(${HTTP_USER_AGENT} = /MSIE/) && (${HTTP_USER_AGENT} != /Opera/)" -->
IEの場合に表示するページ内容
<!--#else -->
IE以外の場合に表示するページ内容
<!--#endif -->

説明

Internet Explorerと、それ以外のブラウザでページ内容を別々に表示するにはユーザーエージェントが格納されている環境変数HTTP_USER_AGENTを参照しブラウザを判別します。Internet Explorerの場合にはMSIEという文字列が含まれているので、正規表現を使ってマッチするかどうか調べます。ただし、Operaなどのブラウザではユーザーエージェント文字列内にMSIEという文字が存在するため、これを排除します。&&と条件比較を使ってOperaの文字列がある場合のみ除外します。マッチした場合には<!--#else -->までの間にInternet Explorerのページ内容を記述します。次に<!--#endif -->までの範囲にInternet Explorer以外のブラウザ用のページ内容を記述します。サンプルではInternet Explorerの場合のみスタイルシートを適用し、それ以外のブラウザではスタイルシートなしのページを表示します。

サンプルコード [実行]

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=shift_jis">
<title>Internet Explorerと、それ以外のブラウザで表示するページ内容を別々にする</title>
</head>
<body>
<!--#if expr="(${HTTP_USER_AGENT} = /MSIE/) && (${HTTP_USER_AGENT} != /Opera/)" -->
<h1 style="width:480px;border:2px red dashed">今日の天気</h1>
<p style="width:480px; background-color:#ddf; border:1px black solid; padding:4px">
 今日は、南から前線がやってくるため九州地方では雨になるでしょう。近畿地方は前線の影響がありますが、曇りの模様です。中部地方は晴れ。関東地方は真夏日で蒸し暑いでしょう。東北地方、北海道も一日中晴れでしょう。
</p>
<!--#else -->
<h1>今日の天気</h1>
<p>
 今日は、南から前線がやってくるため九州地方では雨になるでしょう。近畿地方は前線の影響がありますが、曇りの模様です。中部地方は晴れ。関東地方は真夏日で蒸し暑いでしょう。東北地方、北海道も一日中晴れでしょう。
</p>
<!--#endif -->
<br>
<hr>
<i>Copyright いんちき天気ニュース</i>
<hr>
</body>
</html>