このページは大幅にリニューアルされ「ココのSSI入門?です」に移動しました。 (旧バージョンは下です)
SSI(Server Side Include)はHTMLの文書中コメントを入れて、サーバーが実行結果などを置き換えてくれたりする機能をいいます。このページの赤字で表示されている部分がSSIを使用して表示している部分です。
infoseek isweb では、このSSIの使用を認めています。しかしSSIの使用を許可していないプロバイダもありますので、ご注意ください。
SSIを使用すると、どのようなメリットがあるのでしょうか。
1.例えば、複数のHTML文書の終わりに各ページへのリンクをつけてあったとします。そしてリンクを追加するばあい、HTMLファイルが30あったとすれば30のファイルを修正しなければなりませんが、SSIで記述しておけばSSIで指定したファイルだけを修正するだけで済みます。
2.年月日や時刻をSSIだけで表示することが出来る。
3.ページの最終更新日を表示することが出来る。
4.CGIなどの外部コマンドの結果を表示することが出来る。
などです。
ただSSIの使用を許可しているプロバイダでも、殆どのプロバイダは拡張子を .shtml としなければなりません。 .html や .htm でもSSIを使用できるように設定はできるのですが、それではSSIを使用していない .html でもSSIのチェックを行う必要があり、サーバ負荷が掛かりすぎるのを嫌うからです。infoseek isweb は .shtml での使用のみを認めています。
それでは実際にどのようなことができるのでしょうか。
「
ココの俳句?教室」では文中にCGIの結果を表示しました。その記述は以下のようになっています。
|
<!--#exec cgi="./cgi-bin/haiku3.cgi"-->
|
また「
時間ごとにメッセージを」では、時間ごとに異なるメッセージを表示する方法を説明していますので参照してください。
このページの最上部、右端に最終更新日を表示してありますが、これもSSIを利用しています。
最終更新日:
<!--#config timefmt="%Y/%m/%d %X"-->
<!--#echo var="LAST_MODIFIED"-->
|
timefmt="% の後にいろいろと書いてありますが、細かい説明は
こちらをご覧ください。
いま見ているファイルの更新日だけでなく、他のファイルの更新日を表示することもできます。
haiku.shtmlは
2002/05/30が最終更新日です。
haiku.shtmlは
<!--#config timefmt="%Y/%m/%d"-->
<!--#flastmod file="./haiku.shtml"-->が最終更新日です。
|
更新日時だけでなく、指定のファイルサイズも簡単に表示することができます。
haiku.shtmlのサイズは
9,052bytes(
9k)です。
<!--#config sizefmt="bytes"-->
<!--#fsize file="./haiku.shtml"-->bytes(
<!--#config sizefmt="abbrev"-->
<!--#fsize file="./haiku.shtml"-->)です。
|
sizefmt を bytes で指定すると バイトの単位で、abbrev ではキロ(K)の単位で表示します。
ページ上部では、このファイルの最終更新日を表示させましたが、その他いろいろな環境変数を表示させることができます。
今見ているページのファイル名は"ssi.shtml"で、
"/c/o/c/cocohome/cocohome/ssi.shtml"が仮想パスです。
今見ているページのファイル名は"<!--#echo var="DOCUMENT_NAME"-->"で、<br>
"<!--#echo var="DOCUMENT_URI"-->"が仮想パスです。
|
ただ今の時刻は07日06時08分(AM)
(標準時06日21時08分(PM))となっています。
<!--#config timefmt="%d日%H時%M分(%p)"-->
ただ今の時刻は<!--#echo var="DATE_LOCAL"-->
(標準時<!--#echo var="DATE_GMT"-->)となっています。
|
あなたが今見ているブラウザは[CCBot/1.0 (+http://www.commoncrawl.org/bot.html)]ですって!
あなたが今見ているブラウザは[<!--#echo var="HTTP_USER_AGENT"-->]ですって!
|
ゲートウェイプロトコルは[CGI/1.1]!!?
ゲートウェイプロトコルは[<!--#echo var="GATEWAY_INTERFACE"-->]!!?
|
[(none)]からこのページに来ましたよね!
[<!--#echo var="HTTP_REFERER"-->]からこのページに来ましたよね!
|
あなたが使用しているIPアドレスは[38.103.63.56]で、ホスト名は[(none)]です。
|
あなたが使用しているIPアドレスは[<!--#echo var="REMOTE_ADDR"-->]で、ホスト名は[<!--#echo var="REMOTE_HOST"-->]です。
|
現在表示しているサーバの名前は[www.hp.infoseek.co.jp]で、ポート番号は[80]、プロトコル名は[HTTP/1.1]、ソフトウェア名は[Apache]です。
|
現在表示しているサーバの名前は[<!--#echo var="SERVER_NAME"-->]で、ポート番号は[<!--#echo var="SERVER_PORT"-->]、プロトコル名は[<!--#echo var="SERVER_PROTOCOL"-->]、ソフトウェア名は[<!--#echo var="SERVER_SOFTWARE"-->]です。
|
結構いろいろなことができます。最後に、このHTML文書には書いていない別のHTMLファイルを読み込んでみましょう(iswebのバナー広告が上下に入っています)。
<!--#include file="./ssi_table.html"-->
|
[an error occurred while processing this directive]
上のssi_table.html には、このように書かれていました。
<table border="8" bgcolor="#44BBBB"><tr><td>
今ご覧になっているものは、ここには存在しません!<br>
でもお化けじゃないですよ。ssi_table.htmlという別のファイルなのです。このHTMLを別のHTMLから呼び出されているのです。<p>
このファイルの中にもSSIを入れるとどうかな?最終更新日は
<!--#config timefmt="%Y年%m月%d日(%I時%M分)"-->
<!--#flastmod file="./ssi_table.html"-->です。<br>
var="LAST_MODIFIED" では時刻が正しく表示されないようですが、ファイル名を指定して#flastmod を使えば問題ないようです。
</td></tr></table>
|