- ベストアンサー
SSIって意外と不便?
SSIだと、更新するのにひとつのファイルだけを更新すればいいかと思ってましたが、そうでもないんですね。 例えば、サーバーによっては、SSIの読み込みに際して、フルパスを禁止しています。 ですので、相対パスで読み込まなきゃいけないんですが、下位ディレクトリからしか読み込んでいけない場合も多く、不便ですよね。 トップページに参照にするファイルを置いておいて、それを読み込むのならSSIが読み込もうとするファイルは1個ですみますが、 下位ディレクトリにしかおけないとなると、例えば「日記」と「お小遣い」というディレクトリがあったとしたら、それぞれのディレクトリの中に、それぞれSSIの読み込むファイルを置かないとダメになりますよね?ですから不便です。 これらの解決策はありますか? もうひとつ質問です。 SSIで読み込もうとするファイルに大量のリンクを張っていた場合、それらはフルパスで記載しておいたほうが便利ですよね?相対パスだと、ディレクトリの深さによって全て書き直さなきゃいけなくなりますから。 で、絶対パスだと何か負担が大きくなるとか、マイナス作用がありますか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
ええと、「~/xxx.cgi」とか「/cgi-bin/yyy.cgi」とかそういう書き方じゃダメ?
その他の回答 (2)
>どうすればいいですか? 超絶個人的な意見でごめん(´д`;; 希望する使い方が許されない=そこのサービスでは要求を満たせない であるので可能なサービスを受けるまたは可能な場所へ引っ越しをする、というのが解決策。 恐らくそこのSSIの利用法はその階層から呼べば事足りるような些細なものしか使用しないで欲しいと言っているのだと思われる。 (具体的にはアクセスカウンタや外部からTOPへの来歴記録など)
- hrm_mmm
- ベストアンサー率63% (292/459)
サイト構成がよくわからないのだが、もしかして、fileとvirtualの使い分けが出来てないだけかな? <!--#include virtual="/menu/index.html" --> こう書けば、/index.shtmlからも、 /nikki/nikki.shtml からでも同じ書式で/menu/index.htmlをinclude出来る。 /menu/index.htmlに書くリンクは絶対パスでないと別階層から呼び込んだ時にリンク出来なくなるのはご指摘の通り。 <!--#include file="menu.html" --> こう書くと、menu.htmlと同じディレクトリーにあるページでしか呼び込めない file=""での記述は絶対パス不可
お礼
お二人様ありがとうです。 ロリポップサーバーを使ってるんですが、 注意書きを見てみると「SSIで読み込むファイルは、そのファイル(SHTML)よりも同じか、もしくは下位ディレクトリに必ず設置してください」 とあります。 つまり上位のディレクトリにあるファイルは参照しないでくださいということです。つまり、上位ディレクトリを参照する場合は、VIRTUALの引数が必要になりますが、それが使えないと言うことです。 注意書きにも「絶対パスは使用しないでください」とあるんです。 どうすればいいですか?
補足
SSI利用の際の制限 セキュリティの為にSUEXECを導入しておりますので、SSIで実行ファイルを使用される際、以下の様な制限があります。 ■実行ファイルまでのパスを絶対パス(フルパス)で指定すると動作出来ません。 ■上位ディレクトリを参照すると動作出来ません。 実行ファイルは、SSIを記述するファイルと同じ階層か、下位のディレクトリに設置して頂きますようお願い申し上げます。 ↑ ロリポップのサーバー使用の際の規約を抜粋しました どうでしょうか 何か解決策みたいのはないでしょうか
お礼
ありがとうです、そうします