PDA

View Full Version : ssiに引数が渡せない?


mayura
2002/05/18, 11:40 PM
s8に間借りさせていただいております。唯一?のRubyの使えるフリーサーバということでありがたく使わせていただいてます。

本題に入りますが、rubyで書いたcgiを使って(別)ファイルの更新日時を得たりしているのですが、
http://〜〜〜〜〜/***.rb?####
とする分には問題ないのですが、
<--#exec cgi=("***.rb ####") -->
としたり
<--#exec cgi=("***.rb?####") -->
とすると
[an error occurred while processing this directive]
と怒られてしまいます。

<--#exec cgi=("***.rb") -->
だとエラーは起きませんが
<--#exec cgi=("***.rb ") -->
~←スペース
とするとエラーがでるようです。
回避方法はないのでしょうか?引数を取らせられないのは結構困るのですが・・・。

よろしくお願いします。

webmaster
2002/05/20, 09:14 AM
サポートです。

SSIで引数をCGI風に渡すのは、includeで行うのが一般的かと思います。

http://www.s8.xrea.com/test.shtml?abcd

<!--#include virtual="./test.cgi?hoge"-->
<!--#exec cgi="./test.cgi"-->
を呼び出してみて下さい。

上のQUERY_STRINGはhogeになります。
下のQUERY_STRINGはabcdになります。

include virtualは、一旦呼び出しスクリプトをCGIとして実行して、その出力を元のドキュメントに合成するのに対し、
execは、環境変数面を見ると、ドキュメント自身が実行ファイルと同じ扱いとなるためです。よって、後者は危険と言われます。

mayura
2002/05/21, 08:29 PM
include〜〜〜にしたら問題なく動くようになりました。助かりました。

勉強不足でお恥ずかしい限りです。