Windows TIPS
[System Environment]
  Windows TIPS TOPへ
Windows TIPS全リストへ
内容別分類一覧へ

.htmlファイルでSSIを利用する(Windows 2000 Server/IIS 5.0編)

解説をスキップして操作方法を読む

デジタルアドバンテージ 打越 浩幸
2006/07/08
 
対象OS
Windows 2000 Server
WebページでSSIを利用すると、別のHTMLファイルの内容をインクルートすることができる。これにより、サイト全体でレイアウトなどを統一させたり、ページを編集することなく、一部の内容を変化させることができる。
Windows 2000 ServerのIISでは、デフォルトでは.shtm、.shtml、.stmファイルでのみSSIが有効になっている。
.htmや.htmlファイルでもSSIを利用したければ、ファイル拡張子とIISの拡張DLLのマッピングを追加、変更すればよい。
 
解説

 IISのWebサーバでは、SSI(Server Side Include)機能を利用することができる。SSIとは、Webページ・ファイル中にほかのファイルの内容を読み込んで組み込む(インクルードする)ための機能である。Webページ内の固定的なレイアウトの部分を簡単に統一したり(例:ページの上部やサイド、下部の固定的なメニューや文字列部分など)、インクルードさせる内容を変更して、ページの内容を変化させたりできる。

 SSIを利用するためには、HTMLコード中に、次のような <!--#include 〜 --> タグを記述すればよい。インクルードする内容を別ファイルで独立して管理できるので、HTMLコードを変更することなく、Webページの内容を変更できる。

…HTMLコード…
<!--#include virtual="/include/topmenu.inc" -->
…HTMLコード…
<!--#include 〜 --> タグの使用例
HTMLページ・ファイル中で、別のファイル(この例では\include\topmenu.inc)をインクルードすることにより、個々のページの内容を修正することなく、メニュー構成や全体的なレイアウトを変更・統一するのが容易になる。インクルードするファイルの拡張子は、ここでは.incとしているが、任意である。

 IISでSSIを利用する場合、%windir%system32\inetsrv\ssinc.dllというIISの機能拡張DLLを利用する必要がある。だがデフォルトでは、この機能は「〜.shtm」「〜.shtml」「〜.stm」という拡張子のファイルでのみ利用可能になっている(.aspファイルでも利用可能)。IISでよく使われる「〜.htm」や「〜.html」という拡張子のファイルでは、<!--#include 〜 --> タグを記述しても、無視される。

 本TIPSでは、Windows 2000 ServerのIIS 5.0において、〜.htmや〜.htmlファイルでSSIを有効にする方法について解説する。Windows Server 2003のIIS 6.0に対する設定方法は、別TIPSの「.htmlファイルでSSIを利用する(Windows Server 2003/IIS 6.0編)」を参照していただきたい。

操作方法

手順1――Webサイト・プロパティの表示

 インクルードを許可するファイルの拡張子を変更するには、IISの管理ツールを起動して対象となるWebサイトのプロパティ画面を表示させ、[ホーム ディレクトリ]タブを選択する。以下の画面は、デフォルト・サイトである「既定のWebサイト」のプロパティの例である。

SSIのファイル拡張子のマッピングの変更
SSIが利用できる拡張子のマッピングを変更するには、まずIISの管理ツールでWebサイトのプロパティを開く。
  プロパティ画面でこのタブを選択する。
  これをクリックする。

手順2――拡張子マッピングの表示

 [構成]ボタンをクリックすると、次のようなダイアログが表示されるので、ファイルのマッピングを変更するか、新たに追加する。

SSIのファイル拡張子のマッピング
Windows 2000 ServerのIISのデフォルト設定では、.shtm、.shtml、.stmの3種類の拡張子のファイルのみssinc.dllにマッピングされており、SSIが利用できる。
  デフォルトでマッピングされている拡張子。これらの拡張子に対してのみssinc.dllが利用できる。
  現在のマッピングを残したまま、新しく.htmlや.htmファイルでもSSIを有効にするには、この[追加]をクリックする。
  このマッピングを変更し、例えば.shtmファイルではなく.htmファイルで有効になるように変更するには、設定を1つ選んで、[編集]をクリックする。

手順3――拡張子マッピングの変更/追加

 デフォルトでは.shtmや.shtmlなどのファイルでのみSSIが利用できるが、そのマッピングを残したまま、新しく.htmや.htmlファイルでもSSIを利用できるようにするためには、[追加]ボタンをクリックする。

 既存の.shtmや.shtmlのマッピングを削除し、代わりに.htmや.htmlでSSIを有効にするには、既存の設定内容を変更するのが簡単である。設定項目を1つ選び、[編集]ボタンをクリックすると次のような画面が表示される。

SSIのファイル拡張子のマッピング
実行ファイル(IISの機能拡張DLLファイル)と、拡張子の対応を設定する。
  対象となるファイル拡張子。デフォルトでは「.shtm」となっているので、これを「.htm」に変更する。なお、新規に作成する場合は、残りの設定項目([動詞]や[スクリプト エンジン]のチェック・ボックスなど)は、この画面と同じになるようにしておく。

 ここで、[拡張子]の内容を、デフォルトの「.shtm」から「.htm」に変更して[OK]をクリックする。同様に「.shtml」に対する設定において、拡張子の指定を「.html」に変更する。「.stm」に対する設定は、不要ならば削除しておけばよい(不要な設定を残しておくと脆弱性のもととなるので、削除しておくのが望ましい)。

 これらのマッピングを残したままにする場合は、新たに「.htm」や「.html」などの拡張子に対する定義を新たに追加すればよい。拡張子以外の設定内容については、上の画面と同じになるようにしておく。

 なお、この設定はWebサイトごとに有効なので、必要ならばほかのサイト設定も変更しておく。

 以上で設定は終了である。すでにSSIが有効になっているはずなので(念のためにIISの再起動を行ってもよい)、Webブラウザでページの内容を再ロードして確認しておこう。

 インクルードするファイルが見つからない場合は、次のように、#includeタグの部分にエラー・メッセージが表示されるので、ファイルが存在しているか、パスが正しいかなどを確認する。End of Article

SSIファイルが見つからない場合のエラー・メッセージ
インクルードするファイルが見つからない場合は、このようにエラー・メッセージが表示される。どのファイルが見つからないかというメッセージは出力されないので、正しく表示されている部分などから、どの#include文でエラーが出ているかを推測する必要がある。
  インクルードできない場合のエラーメッセージ。このように、#includeの位置にエラーが表示される。
 
関連記事(Windows Server Insider)
Windows TIPS:IIS 6.0のWeb拡張機能を有効にする
Windows TIPS:.htmlファイルでSSIを利用する(Windows 2000 Server/IIS 5.0編)
Windows TIPS:.htmlファイルでSSIを利用する(Windows Server 2003/IIS 6.0編)
特集:Windows Server 2003完全ガイド―アーキテクチャを一新した新世代アプリケーション・サーバ
 
この記事と関連性の高い別の記事

このリストは、デジタルアドバンテージが開発した自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。

generated byJigsaw
「Windows TIPS」


Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間