SSI(ServerSideInclude)コマンドの簡単なマニュアル

1 .はじめに

SSI とはServerSideInclude の略で,HTML 文書中に配置することのできる命令を意味する。このSSI を使用することによって,たとえば次のようなことが実現できる。

  1. すべてのファイルに共通したヘッダやフッタを表示できる。たとえば,シグニチャを全てのページに表示したいような場合などに使われる。
  2. ファイルの最終更新時刻やサイズを自動的に表示できる。
  3. 外部コマンドの実行結果をページ中に表示できる。

SSI を含むファイルをクライアントがリクエストした場合,サーバは指定されたファイルの内容を解析して,その評価した結果をクライアントに送ることになる。したがって,サーバはSSI を処理するために余分な負荷がかかることになる。これは,SSI ファイルは通常のHTML ファイルに比べてクライアントに返されるのが遅いということにもなる。多くのSSI ファイルを処理しなければいけない場合,サーバに多くの処理負荷がかかり,結果としてサーバの動作が遅くなってしまう。もちろん,だからSSI を使わないようにしろというのではなく,ただSSI を使うことの得失をよく知っておく必要があるということだけである。

プロバイダの中にはSSI を使用できないようにしているところもある。ただし,SLIS ではSSI を使用可能としている。ただし,SLIS のサーバでも全てのHTML ファイルを解析するのではシステム性能の低下が大きいため,拡張子がshtml というファイルに限りSSI を解釈するように設定されている。

したがって,SSI を含むHTML ファイルの拡張子はshtml にしなければならない。

2.SSI のコマンド

SSI コマンドは,HTML のコメントを拡張した構文になっている。これは,SSI コマンドを解釈しないサーバに持っていった時でもエラーが発生しなくするためである。HTML のコメント行の構文は<!--コメント-->という形を持っている。

SSI コマンドは,次のような形式を持つ。ただし,「<!--#コマンド名」の部分には決してスペースを入れてはいけない。(#の後ろにも入れてはいけない)。また「-->」の部分の前には必ずスペースを入れなければならない(slis のサーバを含め,スペースがなくても動作するものもあるが,動作しないものも存在するため)。

<!--#コマンド名 引数名="値" -->

SSI のコマンドとしては,config,echo,exec,fsize,include などがあるが,ここではよく使う場面をいくつか紹介する。

別のファイルの埋め込み <!--#include file="xxxx.html" --> xxxx.html:埋め込むファイル名
ファイルサイズの表示 <!--#fsize file="xxxx.gif" --> xxxx.gif:サイズを表示するファイル名
現在の時刻の表示 <!--#echo var="DATE_LOCAL" --> 日本時間(現地時間)
  <!--#echo var="DATE_GMT" --> グリニッジ標準時
最終更新日時の表示 <!--#echo var="LAST_MODIFIED" -->  

この日時の表示方法を変更する場合,その前に<!--#configtimefmt="%.."-->と指定することで表示形式を変更することができる。表示形式の例を以下に示す(表示の詳細は「とほほ」さんのページ(http://wakusei.cplaza.ne.jp/twn/wwwssi.htm)などを参照のこと。

例:1999/05/2411:22:33 のように表示する場合
<!--#configtimefmt="%Y/%m/%d%X"-->

なお,#echovar="値"において,「値」として指定する文字列は大文字にしなければならない。小文字でも動作するサーバもあるが,slis のサーバをはじめとするいくつかのものは大文字限定である。

3.その他

アクセスカウンタはSSI で実現することも多いが,SLIS では以下のSource をリンクすることを推奨している。他のカウンタサイトをリンクしている人もいるようだが,ネットワークを混雑させる元となるだけなので避けること。

<img SRC="/cgi-bin/nph-count?width=5&amp;link=/~ushi/index-j.html">

width=桁数
link=数える対象とするファイル名

のように指定する。