• 締切済み

SSIを使ってHTMLページにCGIを埋め込みたい

使っているサーバーがSSIが使えるとの事で今回初めてSSIを使ってHTMLページにCGIを埋め込みたいと思い、色々なページを見ながら設置してはみてるんですが、 [an error occurred while processing this directive] となってしまいます。 やってみた事は test.shtmlを作り<BODY></BODY>の中に <!--#exec cgi="/navi/can.cgi"--> などとしてみたりしましたが上記のエラーが出てしまいます・・ 初歩的な質問なのかもしれませんが何が間違えているのかもわからなく、すみませんが教えていただけないでしょうか? よろしくお願いします。

みんなの回答

回答No.3

言語をまたぐ場合は、それら全ての言語でエラーをなくさないと、期待通り動かないです。 どうやらSSI、Perl、HTML、JavaScriptの4つが使われているようですが、 SSIでエラーが無くなったなら、Perl、HTML、JavaScriptのどこかにエラーがあるということです。 コードはあまり見てませんが、 Perlの文法エラーがないなら、HTMLやJavaScriptの文法エラーがあるのでは? cfg.cgiの中身もわかりませんし、HTMLがどのように書かれてるのかもわかりません。 本当にこのまま書かれてるなら、文字列が閉じられてないような気がしますので、 PerlにもJavaScriptにもエラーがあるような気がします。

aul
質問者

補足

talooさま、ありがとうございます。 こちらのページですがJavaScriptで <script language="javascript" src="./navi/pickup_new.cgi"> </script>と書くと見れるんです。 http://w2.oroti.com/~navi/new.html SSI、Perl、HTML、JavaScriptのすべてが初心者で頭がこんがらがってきますね・・・

回答No.2

> <!--#exec cgi="/navi/can.cgi"--> Apache2.x系ではコマンドと終了デリミタ(閉じタグ)の間にスペースを1つ(以上)入れなければなりません。 <!--#exec cgi="/navi/can.cgi" --> それ以外は何をやったのかがわからないので答えようがありません。 SSIコマンドにエラーがないのであれば、CGIアプリケーションのエラーではないでしょうか。

aul
質問者

補足

talooさま、お返事ありがとうございます。 >Apache2.x系ではコマンドと終了デリミタ(閉じタグ)の間にスペースを1つ(以上)入れなければなりません。 としましたら[an error occurred while processing this directive]は消えたんですが表示はされません・・ もしかですが、設置したCGIがJavascriptで表示するタイプなのでJavascriptとはみなされず表示されないのでしょうか? スクリプトはコチラです。 http://w2.oroti.com/~navi/index.htm このスクリプトではJavascriptを付けないと表示されないのでしょうか?

回答No.1

スクリプトのミス、パーミッション違い、パス記述ミスなどいくつか原因が考えられますが、一番ありそうなのはexecが許可されていないこと。 SSIといってもたくさん種類があります。もしlncludesNoExecが設定してあると、exec以外のSSIしか使えません。この辺の設定はサーバ管理者に確認してみてください。

aul
質問者

補足

lowrider_2005さん、お返事ありがとうございます。 >スクリプトのミス、パーミッション違い、パス記述ミスなどいくつか原因が考えられますが、一番ありそうなのはexecが許可されていないこと。 ですがJavaScriptではきちんと表示されているのでスクリプトのミス、パーミッション違いでは無いと思うのですが、 今使っているサーバーは さくらインターネットでしてSSIの一例では exec cgiも使えそうです。

関連するQ&A