- ベストアンサー
会員認証スクリプト「ディレクトリゲイト」でのSSIのincludeの動作
初めまして。 現在「ディレクトリゲイト」を利用して会員サイトを運営しておりますが、会員のページからSSIで外部 ファイルをincludeしたいのですが、うまくいきません。 http://webpower.jp/websofts/password_protection/directory_gate/ (v2.09を利用しています) <!--#include virtual="aaa.txt" --> や、サーバからの絶対アドレスで指定したり、 いろいろやっていますが。。。 正しい指定の方法、ご存じの方いらっしゃいますでしょうか。 専用サーバを利用しているので、設定はいろいろ変更することが できると思います。 よろしくお願い致します。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
うまくいかないとはどういうことでしょうか? HTMLに<!--#include virtual="aaa.txt" -->のまま表示されるのか、 [an error occured while 何か忘れた] などと表示されるのでしょうか。 それによって対処方法は違います。 <!--#include virtual="aaa.txt" -->のまま表示されるなら そのファイル(拡張子)でSSIを使えるように.htaccessなどで設定してください。 Apache2系での.htaccess Options +Includes AddType text/html .shtml AddOutputFilter INCLUDES .shtml Apache2系でしたら、 include fileはhtmlファイル(カレントディレクトリ)からの相対パスで、上層を指定することは出来ません。 include virtualはhtmlファイルからの相対パスまたは絶対パスで、カレントディレクトリの上層も指定出来ます。 ファイル名には"・・・"と、ダブルクォーテーションで囲ってください。 気になったことがあってダウンロードしてみましたが、 該当ページの説明には > CGI(Perl以外も対応)、 と書かれていますが、Perl必須です。 もしくは、Perl以外の言語の場合は、専用のファイルを別途ダウンロードしなければならないと思います。 > SSI(サーバーがSSIを許可していなくても)も動作します。 これはわかりません。おそらくSSIを許可していなければ動作しないと思います。 ソースコードを見ると、SSI用に書かれていそうな部分が見つかりませんでしたので、ともすればSSIでは動きません。 実験的にaaa.txtを表示したいだけならディレクトリゲイトはとりあえずは関係ないですね。
その他の回答 (4)
- luka3
- ベストアンサー率72% (424/583)
v2.10を使うとどうでしょうか。 v2.09は手に入りませんのでどのように処理されるか確認できません。
補足
ありがとうございます。 v2.10とv2.09は、SSIの処理のコードを比較しますと、 全く同じでしたので、変わりはなさそうです。 luka3様は、うまくincludeできましたでしょうか。 できたとしましたら、どのように表記していらっしゃいますか?
- luka3
- ベストアンサー率72% (424/583)
ファイルの存在までは確認できているのですね。 ファイルのパーミッションはどうなっていますか? ちなみにうまくいかないというのは、何も表示されないのか、エラーが表示されるのか、どっちですか?
補足
ありがとうございます。 実行結果ですが、 <!--#include file="aaa.txt" --> に対し file="aaa.txt" と表示されてしまいます。 コマンドそのまま表示されるわけではありませんでした。 パーミッションは755でした。 644にしても同様でした。
- luka3
- ベストアンサー率72% (424/583)
fsizeやflastmodはどうなりますか? ちなみに""でくくるのはOKでした。きちんと処理されてました。
お礼
ご回答、ありがとうございます。 結果は下記の通りになりました。 <!--#lastmod file="aaa.txt" --> →Mon Apr 23 05:22:54 2007 正常 <!--#fsize file="aaa.txt" --> →38 正常 そのほかにも、 <!--#echo var="DATE_LOCAL"--> も正常でした。 はまっています~
- luka3
- ベストアンサー率72% (424/583)
includeの指定方法としては、 #include virtual=aaa.txt → ($SYS{'BASE_DIR'}で指定したフォルダ)/aaa.txt #include file=aaa.txt → (htmlのあるフォルダ)/aaa.txt のようです。 もしかしたら""でくくっているのがよくないのかもしれません。
お礼
ありがとうございます。 早速やってみましたが、残念ながら、出力されませんでした。 また何か分かりましたら、よろしくお願いします。 ありがとうございました。
補足
ありがとうございます。 file="aaa.txt" と表示されてしまいます。 コマンドそのまま表示されるわけではありませんでした。 その他のコマンドは、正常に動作するようです。 > SSI(サーバーがSSIを許可していなくても)も動作します。 dirgate.cgiの1800行前後で処理しているようです。 また何か分かりましたら、教えて頂けると幸いです。