« Web表示でないときのデスクトップアイコンの非表示 | メイン | Amaryllis »

自作の SSI カウ

自作の SSI カウンタがこのサーバでも動くようになりました。
ソースとかパーミッションとか闇雲にいじくりまくったので結局何が原因だったのかよくわかりません。まあ、動いたのでヨシ、です。

さくらのレンタルサーバで SSI の実行ファイルを指定する時は、どうやらディレクトリをさかのぼる(../)パスの指定はできないっぽいです。絶対パスも使えないので、今いる階層から下に向けての相対パスしか使えないということになりますね。

そうすると、たとえばウチの例で /dsc/count.cgi を様々な階層のページから呼び出したいと思っても、直接はできないことになります。でも・・・見て頂くとわかるとおり、このサイトでは階層に関係なくほとんどのページでカウンタを表示してます。(あ、カウンタはページ上段、タイトル欄の右端の ":" の後ろの数字です。数値は前サーバでの最終値を引き継いでいます。)
とは言っても階層ごとにいちいち SSI の実行ファイルをおいている訳ではありません。ちゃんとすべてのページから /dsc/count.cgi を呼び出してます。

どうやってるかわかりますか?

SSI 攻略

答えは案外簡単です。

まず、/dsc/counter.shtml というファイルを用意しました。
中身は、

<!--#EXEC CMD="count.cgi"-->

これを、各ファイルから <!--#INCLUDE VIRTUAL="/dsc/counter.shtml"--> として読み込んでいます。

そうすると、各ページから INCLUDE で読み込まれるより先に、/dsc/counter.shtml の中の EXEC コマンドが実行されます。つまり、/dsc/counter.shtml が各ページに読み込まれるときにはすでにカウンタが表示された状態になっているのです。

もし、同じ境遇で困ってらっしゃる方がみえたら、試してみてください。