このページはSSIを使用しています。Isweb以外のサイトから直接このページにアクセスされた場合、正しくSSIが動作できません(Iswebでは他サイトから直接CGIなどの呼び出しを禁止しているため)。ここを押して正しく表示できるようにしてください。

SSI入門?です

最終更新日: 2002/04/09 16:48:33



このページは大幅にリニューアルされ「ココの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>


| Back | Coco's Home | ココと Perl で遊びませんか | SSI入門?です |

Copyright 2001-2002 Coco's Home. All rights reserved.