SSI入門
基本的な SSI ディレクティブ
SSI ディレクティブは以下の文法で記述します:
<!--#コマンド名 引数名="引数値" -->
HTML のコメントのような書式をしているので、もし SSI を正しく動作可能にしなければ、ブラウザはそれを無視するでしょう。 しかし、HTML ソース中では見えます。もし SSI を正しく設定したなら、 ディレクティブはその結果と置き換えられます。
element はたくさんあるものから一つ指定することができます。 指定できるものの大多数については、次回もう少し詳しく説明します。 ここでは、SSI で行なうことができる例をいくつか示します。
| コマンド | 説明 |
| config | 時期、サイズ、エラーメッセージのフォーマットを設定する。 |
| echo | Webページに SSI変数の値を差し込む。 |
| exec | システムコマンドや CGIプログラムを実行し、その出力を Webページに差し込む。 |
| fsize | ファイルのサイズを Webページに差し込む。 |
| flastmod | ファイルの最終更新日付を Webページに差し込む。 |
| include | ファイルの内容を Webページに差し込む。 |
| 引数名 | 引数値 |
| errmsg | 任意のASCII文字のテキスト(日本語は使えない) |
| sizefmt | bytes またはabbrev |
| timefmt | 別表に掲げる日付コードのうちのどれか |
| コード | 意味 |
| %a | 曜日を省略形で埋め込む。 (Sun, Mon, …) |
| %A | 曜日をフルスペルで埋め込む。 (Sunday, Monday, …) |
| %b | 月名を省略形で埋め込む。 (Jan, Feb, …) |
| %B | 月名をフルスペルで埋め込む。 (January, February, …) |
| %c | 現在のローケル(使用言語指定)にかなった形式で日時を埋め込む。 |
| %d | 日を数字で表わす。 (1〜31) |
| %m | 月を数字で表わす。 (1〜12) |
| %U | その年の第何週かを数字で表わす。 (年の最初の日曜が第1週) |
| %W | その年の第何週かを数字で表わす。 (年の最初の月曜が第1週) |
| %w | 曜日を数字で表わす。 (日曜が 0 になる) |
| %x | 現在のローケル(使用言語指定)にかなった形式で日のみを埋め込む。 |
| %y | 年を最初の2桁を除いた西暦で表わす。 (00〜99) |
| %Y | 年を4桁の西暦で表わす。 |
| %H | 時間を24時間形式で表わす。 (00〜24) |
| %I | 時間を12時間形式で表わす。 (01〜12) |
| %j | その年の第何日目かを数字で表わす。 (001〜366) |
| %M | 分を数字で表わす。 (00〜59) |
| %p | 現在のローケルに叶った形式で午前か午後を埋め込む。 |
| %S | 秒を数字で表わす。 (00〜59) |
| %X | 現在のローケルに叶った形式で時刻のみを埋め込む。 |
| %Z | 時間帯の名前。(JST -- 日本標準時、GMT -- グリニッジ標準時など) |
| 変数 | 意味 |
|---|---|
| Data_Local | ローカルな環境変数での現在に日付と時間を参照します。 |
| Date_GMT | グリニッジ標準時での現在の日付と時間を参照します。 |
| Document_Name | SSIを含んだサーバ解析HTMLのファイル名を参照します。 |
| Document_URI | その文書の URIをサーバのフルパスで参照します。 |
| Last_Modified | その文書の最終(最新)更新日を参照します。 |
| HTTP_User_Agent | クライアントのユーザエージェント名を参照します。 |
| HTTP_Referer | クライアントがそのページに来る前のページの URLを参照します。 |
今日の日付
今日の日付Friday, 09-Jan-2009 22:25:47 JST
echo 要素は単に変数の値を出力します。 CGI プログラムに利用可能な環境変数の全ての セットを含む多くの標準変数があります。また、set 要素を用いることで、独自の変数を定義することができます。
出力される日付の書式が好きではない場合、その書式を修正するために、config 要素にtimefmt 属性を使用することができます。
Today is <!--#echo var="DATE_LOCAL" -->
Today is Friday January 09, 2009
URLの取得
この変数は当サイトではフッターで使用してます。すべてのページの最下段にこのページのURLとして表示してるのがこの機能です。
このページのURL:http://web.okanos.com/employment/ssi2.shtm
ファイルの変更日
この要素もtimefmt フォーマットの設定に従います。
CGI プログラムの結果を取り込む
これは、全ての人のお気に入りである ``ヒットカウンタ'' のような CGI プログラムの結果を出力する SSI のより一般的な使用のうちの一つです。
追加の例
以下は、SSI を使用して HTML ドキュメントにおいてできることのいくつかの特別な例です。
いつこのドキュメントは修正されたのか ?
先に、ドキュメントが最後に変更されたのはいつかを ユーザに通知するために SSI を使用することができることを述べました。 しかしながら、実際の方法は、いくぶん問題のままにしておきました。 HTML ドキュメントに配置された次のコードは、ページにそのような タイムスタンプを入れるでしょう。もちろん、上述のように、 SSI を正しく動作可能にしておく必要があります。
This file last modified <!--#flastmod file="ssi.shtml" -->
もちろん、ssi.shtmlの部分を実際の当該ファイル名と置き換える必要があります。もし、あらゆるファイルに張ることができる一般的なコードを探しているなら、これは不便であるかもしれません。おそらくその場合は、そうする代わりに変数LAST_MODIFIED を使用したいと考えるでしょう:
This file last modified <!--#echo var="LAST_MODIFIED" -->
This file last modified 03/06/08
timefmt 書式についてのより詳細については、お好みの検索サイトに行き、strftime で検索してみてください。文法は同じです。
標準のフッタを挿入する
もし数ページを超えるページを持つサイトを管理しているならば、 全ページに対して変項を行なうことが本当に苦痛となり得ることが 分かるでしょう。
全てのページに渡ってある種の標準的な外観を 維持しようとしているならば特にそうでしょう。
ヘッダやフッタ用の挿入用ファイルを使用することで、 このような更新にかかる負担を減らすことができます。
一つのフッタファイルを作成し、それをinclude SSI コマンドで各ページに入れるだけで済みます。
include 要素は、file 属性またはvirtual 属性のいずれかを使用してどのファイルを挿入するかを決めることができます。
file 属性は、カレントディレクトリからの相対パスで示されたファイルパスです。
それは / で始まる絶対ファイルパスにはできず、また、そのパスの一部に ../ を含むことができないことを意味します。
virtual 属性は、おそらくより便利だと思いますが、提供するドキュメントからの相対 URL で指定すべきです。
それは / で始めることができますが、 提供するファイルと同じサーバ上に存在しなくてはなりません。
私は最後の二つを組み合わせて、LAST_MODIFIED ディレクティブをフッタファイルの中に置くことがよくあります。
SSI ディレクティブは、挿入用のファイルに含ませたり、 挿入ファイルのネストをしたりすることができます。
すなわち、 挿入用のファイルは他のファイルを再帰的に挿入することができます。
ヘッダーとメニューをインクルードするイメージ
<div id="banner">
<!--#include virtual="/banner.shtm" -->
</div>
<div id="sidebar">
<!--#include file="sidemenu.htm" -->
</div>

Webサイトを持とう
SEOアクセス向上
雑学
広告