- 締切済み
SSIを使ってHTMLページにCGIを埋め込みたい
使っているサーバーがSSIが使えるとの事で今回初めてSSIを使ってHTMLページにCGIを埋め込みたいと思い、色々なページを見ながら設置してはみてるんですが、 [an error occurred while processing this directive] となってしまいます。 やってみた事は test.shtmlを作り<BODY></BODY>の中に <!--#exec cgi="/navi/can.cgi"--> などとしてみたりしましたが上記のエラーが出てしまいます・・ 初歩的な質問なのかもしれませんが何が間違えているのかもわからなく、すみませんが教えていただけないでしょうか? よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- 神崎 渉瑠(@taloo)
- ベストアンサー率44% (1016/2280)
言語をまたぐ場合は、それら全ての言語でエラーをなくさないと、期待通り動かないです。 どうやらSSI、Perl、HTML、JavaScriptの4つが使われているようですが、 SSIでエラーが無くなったなら、Perl、HTML、JavaScriptのどこかにエラーがあるということです。 コードはあまり見てませんが、 Perlの文法エラーがないなら、HTMLやJavaScriptの文法エラーがあるのでは? cfg.cgiの中身もわかりませんし、HTMLがどのように書かれてるのかもわかりません。 本当にこのまま書かれてるなら、文字列が閉じられてないような気がしますので、 PerlにもJavaScriptにもエラーがあるような気がします。
- 神崎 渉瑠(@taloo)
- ベストアンサー率44% (1016/2280)
> <!--#exec cgi="/navi/can.cgi"--> Apache2.x系ではコマンドと終了デリミタ(閉じタグ)の間にスペースを1つ(以上)入れなければなりません。 <!--#exec cgi="/navi/can.cgi" --> それ以外は何をやったのかがわからないので答えようがありません。 SSIコマンドにエラーがないのであれば、CGIアプリケーションのエラーではないでしょうか。
補足
talooさま、お返事ありがとうございます。 >Apache2.x系ではコマンドと終了デリミタ(閉じタグ)の間にスペースを1つ(以上)入れなければなりません。 としましたら[an error occurred while processing this directive]は消えたんですが表示はされません・・ もしかですが、設置したCGIがJavascriptで表示するタイプなのでJavascriptとはみなされず表示されないのでしょうか? スクリプトはコチラです。 http://w2.oroti.com/~navi/index.htm このスクリプトではJavascriptを付けないと表示されないのでしょうか?
- lowrider_2005
- ベストアンサー率40% (1520/3748)
スクリプトのミス、パーミッション違い、パス記述ミスなどいくつか原因が考えられますが、一番ありそうなのはexecが許可されていないこと。 SSIといってもたくさん種類があります。もしlncludesNoExecが設定してあると、exec以外のSSIしか使えません。この辺の設定はサーバ管理者に確認してみてください。
補足
lowrider_2005さん、お返事ありがとうございます。 >スクリプトのミス、パーミッション違い、パス記述ミスなどいくつか原因が考えられますが、一番ありそうなのはexecが許可されていないこと。 ですがJavaScriptではきちんと表示されているのでスクリプトのミス、パーミッション違いでは無いと思うのですが、 今使っているサーバーは さくらインターネットでしてSSIの一例では exec cgiも使えそうです。
補足
talooさま、ありがとうございます。 こちらのページですがJavaScriptで <script language="javascript" src="./navi/pickup_new.cgi"> </script>と書くと見れるんです。 http://w2.oroti.com/~navi/new.html SSI、Perl、HTML、JavaScriptのすべてが初心者で頭がこんがらがってきますね・・・