• ベストアンサー

SSIのファイル呼び出しができない

ひとつ階層が深いshtmlから一つ上の階層のhtmlファイルをSSIで呼び出そうとすると「an error occurred while processing this directive」というエラーが出てしまいます。 調べたところこのエラーメッセージではどのような種類のエラーなのかがわからないということだったので行き詰ってしまいました。 ファイルの場所指定などは間違っておらず、コードなども同じ階層で呼び出しが成功しているファイルと同じものを使用しているのですがどこに問題があるのでしょうか? 呼び出そうとしているファイル(問題のファイル) http://www.loplopland.com/rireki2/data/naz.shtml 呼び出しているファイル(呼び出すファイルと同じ階層にある成功例) http://www.loplopland.com/rireki2/ 呼び出されるファイル http://www.loplopland.com/rireki2/contents.html

  • HTML
  • 回答数5
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
noname#76085
noname#76085
回答No.5

#1です うっかりしていました。失礼っ。 あとから思いだして、こちらの方がわかりやすかったかなぁ、と今になって思います。 http://www.tohoho-web.com/wwwssi.htm

nurunurupo
質問者

お礼

解決しました。ありがとうございました。

その他の回答 (4)

回答No.4

includeでのルートディレクトリというのは、httpdのドキュメントルートのことで、 絶対パスは /rireki2/contents.html です。 ルートディレクトリの意味が2種類あることは、ANo.1の参照サイトには書かれてないようですが。。。 別のページに書かれているかもしれませんが、そこまで読んでいません。 サーバーのディレクトリシステムの絶対パスを使うときは<!--#exec cmd="" -->の時だけです。

nurunurupo
質問者

お礼

解決しました。ありがとうございました。

noname#76085
noname#76085
回答No.3

#1のリンクを読み直してください。

noname#76085
noname#76085
回答No.2

#1です。 /~~~の絶対パスですが、わかりません。 と言ってもさじを投げているのではないです。 絶対パスは、質問者様の使用しているサーバなどによって異なります。 サーバーホスティング業者などのFAQなどを見てみてください。

nurunurupo
質問者

補足

サーバー業者に問い合わせたところ <!--#include file="/home/loplopland-com/public_html/rireki2/contents.html" --> だとわかったのですが、それでもうまくいきません。 もう完全にお手上げ状態です・・・

noname#76085
noname#76085
回答No.1

おそらく、SSIのincludeコマンドを使用していると思いますが、引数をfileとするか、virtualとするかで、ファイルの位置を特定する方法が変わります。 http://www.scollabo.com/banban/ssi/ssi_005.html こちらなど、参考になるのではないでしょうか?

nurunurupo
質問者

補足

原因がなんとなくわかってきました。 上の階層に呼び出すファイルがあるのでvirtualにしているんですが、「 / 」から始まるパスがわかりません。どうすればわかるんですか?

関連するQ&A

  • SSIを使ってCGIを呼び起こしたいのですが

    index.shtmlのタグにssiを使用したいのですが index.cgi?mode=m のようなパラメータもつけて実行させる場合 <!--#exec cgi="./index.cgi?mode=m"> ではだめなんでしょうか? [an error occurred while processing this directive] というエラーがでました。 どうかご教授ください。

    • ベストアンサー
    • CGI
  • ssi設置について

    「予約状況カレンダー」というフリーのcgiをDLして動かすまではできましたが、同じものをssiで動かそうとしたら[an error occurred while processing this directive]というメッセージがでます。 HTMLソースの中に<!--#include virtual="(URL)"-->を埋め込んで名前を.shtmlにしました。サーバーはロリポップです。 ここのマニュアル【■実行ファイルまでのパスを絶対パス(フルパス)で指定すると動作出来ません。 ■上位ディレクトリを参照すると動作出来ません。 実行ファイルは、SSIを記述するファイルと同じ階層か、下位のディレクトリに設置して頂きますようお願い申し上げます。】がよくわからない初心者ですが、どなたか初心者でも分かるような説明をしてくださいませんか?

    • 締切済み
    • CGI
  • htaccess ssi basic認証

    ssiでヘッダー・フッターを読み込んでいるサイトがあります。 そこでまずhtaccessでssi、shtml→htmlへの設定をしています。 そのサイトの中でディレクトリを切ってbasic認証が必要なページを作成しました。 そのディレクトリの中ではヘッダー・フッターが読み込むことができず、エラーが表示されます。 an error occurred while processing this directive そこでbasic認証に使ったhtaccessにもssiの設定を追記しましたがうまく行きません。 ssiとbasic認証を同時に設定することはできるのでしょうか。

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

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

    • 締切済み
    • CGI
  • SSIに付いて

    こんばんは 初心者には、無謀すぎる挑戦なんですが・・ ヨミーサーチの登録件数をトップページに表示させようとしています。 (1)自分で用意したindex.html (2)index.htmlに、インラインフレームを作った。 (3)メモ帳を開いて「<!--#include file="./log/total_url.log"--> 」(ヨミサーチの登録フォルダ)を書き、「count.shtml」で、保存。 (4)index.htmlに作った、インラインフレームのリンク先は、サーバーに置いた、「count.shtml」アドレスを入れた。 そして、アクセスしたら「[an error occurred while processing this directive]」と、表示されてしまってます。 SSIが使えるサーバーなんですが・・・・

  • SSIでのエラーについて

    こんばんわ。 RedHat7.2で、Perlで、CGIの勉強をしはじめましたが、 SSIが どうもうまくいきません。 CGIならうまくいくのですが、HTMLからSSIでCGIを実行しようと するとうまくいきません。 Apacheで練習しているのですが、Apacheの設定が悪いのか、ほかに 重大なミスをしてるのかわかりません。 HTMLの中に #exec cgi を入れてみたんですが、 ブラウザにはその部分が [an error occurred while processing this directive] と表示されるだけなんです。 ごくごく簡単なカウンターなんですが。。。 SSIにおいて、これだけは必ずしなければだめ、というのが あれば教えていただきたいのですが。。。 よろしくお願いいたします。

  • ApacheをまたがるSSIの利用方法

    よろしくお願いします。 SSIをHTMLから読み出す際タグ内に exec cgi="/フルパス/cgi-bin/test.cgi" のように記述し、ブラウザから開くと、 [an error occurred while processing this directive] と出ます。 これは、パスが間違えていることが原因と思われます。 環境が特殊で、 apacheをSSL用((1))と非SSL用((2))に二つ、同じサーバ内に立ち上げています。 (2)のHTMLから、フルパスで(1)のCGIをキックすることは可能でしょうか? それともapacheをまたがってSSIからCGIをキックするのは無理なのでしょうか? ご回答、どうかおねがいいたします。

    • ベストアンサー
    • Perl
  • ssi がうまく動作しません。

    サーバ会社に訪ねると.htaccessに AddType text/html shtml を記入して下さいとのことでした。 以下の方法でためしましたが、エラーがでるわけでもなく、<!--#INCLUDE VIRTUAL="/ssi/xxx.shtml"--> にした部分だけが表示されません。 http://aaa.com/bbb/ccc/ddd.html .htaccess は、bbbのファイル内におきました。 1, ssi/xxx.shtml は、indexと同じトップの階層におきました。 ddd.html に  <!!--#INCLUDE VIRTUAL="/ssi/xxx.shtml"--> を記入しました。 2, ssi/xxx.shtml は、bbbのファイル内において、ddd.html に <!--#INCLUDE FILE="/ssi/xxx.shtml"--> を記入してみましたが、これもだめでした。 パーミッションも何がいいのか、お分かりでしたらお願い致します。 ちなみに777にして試したのですが、だめでした。

    • ベストアンサー
    • CSS
  • htmlの中にssiでphpを表示させる方法について

    いつもお世話になっています。 タイトルにもありますが、htmlファイルの中でphpの実行内容を表示させたいと思っています。 htaccessでhtmlでもssiが動くように設定してあるので、htmlの中でssiを使用してphpを呼び出す事はできるでしょうか? <!--#include virtual = "~.php" --> <!--#include file = "~.php" --> 上記のように試してみたのですが、「[an error occurred while processing this directive] 」と表示されてしまいます。 この記述方法で間違っていないと思っていたのですが、どうしても上手くできません。 phpまでのパスを相対パスや、絶対パスで指定してみましたが、やはりダメです。 表示させたいphpは、直接アクセスするとちゃんと表示されます。 またphpのパーミッションは644となっています。 アドバイスを御願い致します。

    • 締切済み
    • PHP
  • HP作成において、フォルダ整理後、SSIが上手く起動しません

    HPビルダーV6.0(バンドル版)、WindowsXPを使用して、HPを運営しています。 インフォシークの無料スペースを利用し、ブラウザ上で見ると自動的に上下に広告が入ります。 画面上部にメニュー項目を作っており、メニュー部分を外部ファイルにし、全ページにSSIを用いて、そこを更新した時に、全ページのメニュー部分が自動的に更新されるstmlファイルにしています。 stmlファイルは上部に広告が入らなくなってしまう為、stmlファイルでも広告が入る様に、インフォシークの案内から『<!--#include virtual="/header.txt" --><!--#include file="外部ファイル名.shtml" --』を〈BODY〉直後に入れています。 最近HP作成でファイルがだいぶ増えた為、フォルダビューから新しいフォルダを作り、ドラック&ドロップで整理をしました。その後、HPビルダーのブレビューでは問題なく見れるのですが、サーバーにアップロードしてブラウザ上で見ると、上部のメニュー部分が抜け、その部分に『[an error occurred while processing this directive]』とエラーメッセージが表示されます。 整理後、外部ファイルの階層が深くなってしまったからでしょうか?ちなみに、整理後のタグは『<!--#include virtual="/header.txt" --><!--#include file="../新しく作ったフォルダー名/外部ファイル名.shtml" -->』となっています。 整理はページ毎に行い、フォルダ数が増えました。 ちなみに、トップページの階層は HP/toppage/index.stml 外部ファイルの階層は HP/新しく作ったフォルダ/外部ファイル名.stml 階層が深くなっても使えるのでしょうか?何が悪いのか、教えて下さい。 長文を読んで下さり、ありがとうございました。