dポイントプレゼントキャンペーン実施中!

CGIを使ううえでディレクトリを2階層にグループ分けをしたいと考えています。
そこで質問ですがディレクトリを2階層にグループ分けをするにはどうすればいいのでしょうか

トップでttp://www.アカウント.com/1ディレクトリ/

トップからのリンク先で
ttp://www.アカウント.com/1ディレクトリ/2ディレクトリ/**.htm

上記のような感じで考えています。

サーバーの仕様を確認したところCGI専用ディレクトリについて

お好きなディレクトリに設置しても動作します。

ただし、ファイル・ディレクトリ名に
「半角英数字」「_(アンダーバー)」「-(ハイフン)」「.(ピリオド)」
以外を使用すると正常に動作致しませんのでご注意ください。
と記載されていました。

CGIやディレクトリ詳しい方よろしくお願いします。

A 回答 (2件)

>トップページからリンク先をクリックするとディレクトリ名が


>ttp://ww.*****.com/local/このように変わったのを覚えていますが
>これはどんな方法で設置しているのでしょうか?
 それは単純に、そきにの出力したHTMLにリンクが記載されていただけです。
★複数のCGIを
・プロトコル://[ドメイン]/path/([CGI_1])
・プロトコル://[ドメイン]/path/[path/([CGI_2])
  ()内のCGIファイル名指定はなくても良い
と置いたり
 プロトコル://[ドメイン]/path/[CGI][/PATH_INFO]
と置けたりすることは、HTTPサーバーの動作手順を学べばよいです。極めて単純で機械的な処理です。

 例を挙げますが、自身でサーバーを作ってみないとこんがらがるでしょうから、参考までに
 ブラウザから次のような要求がサーバーにあったとします。
http://[ドメイン名]/ABC/EFG/HIJ?KLM/OPQ
 この要求を受け取ったサーバーはまず?以下を環境変数{QUERY_STRING}に代入して、
  この時点で、$ENV{QUERY_STRING} = KLM/OPQ
/ABC/EFG/HIJというファイルを探します。
 1) /ABC/EFG/をディレクトリとみなしてされをさがす。
 ・・あれば、それがファイルなら提供する
 ・・実行ファイルならそのプログラムに処理を任せる
 2) ファイルでなければ、ディレクトリであるか調べる
 ・・ディレクトリならそのディレクトリを開き、
  そのディレクトの処理方法を調べる
  a) インデックスを探すならindex.htmlとかindex.cgi
 3) ファイルもディレクトリもなければ、
 ・・/HIJを切り捨てて、環境変数{PATH_INFO}に/HIJを代入
  この時点で、$ENV{QUERY_STRING} = KLM/OPQ
        #ENV{PATH_INFO} = /HIJ
 4) (1)から(2)の作業をする。
 5) ファイルもディレクトリもなければ、
 ・・/HIJを切り捨てて、環境変数{PATH_INFO}に/EFGを代入
  この時点で、$ENV{QUERY_STRING} = KLM/OPQ
        #ENV{PATH_INFO} = /EFG/HIJ
 4) (1)から(2)の作業をする。

・・・これをサーバーのトップまで実行します。・・・

ですので、ドメイン名以降の[/******」は、実体はなくても良いのです。極端な話、トップに[CGI]が置いてあって、それをディレクトリインデックスとして認識させていれば、ドメイン名以降の[/******」は実在の必要もないのです。

・・だから難しいといったでしょ・・・

例]こちらに良い見本があります。
http://hpcgi1.nifty.com/Iruka/ENV_FORM.cgi
の後ろに任意のURLに使用できる文字を入れてみてください。
http://hpcgi1.nifty.com/Iruka/ENV_FORM.cgi/Lawye …
とか・・・/Lawyer_41以降は任意の文字列
    • good
    • 0
この回答へのお礼

なるほど、
ttp://ww.*****.com/local/このように変わったのを覚えていますが
これはどんな方法で設置しているのでしょうか?
についてですが無事に解決しました。

今後の参考になりました。

お礼日時:2008/11/03 13:51

サーバーによっては、CGIは別のサーバーで動作させているものもありますが、ご利用のサーバーでは、任意の場所で動作可能ということです。


トップページ(index.htmlなど)を置くディレクトリに、普通にディレクトリを作り、さらにその中に作ればよいです。

 ただし、必ずしもそのディレクトリが必要というわけでしなく、2ディレクトリは実在しなくても良い・・難しいかな。

この回答への補足

2ディレクトリは実在しなくても良い

というのは、ど言う事でしょうか?

以前、たまたまアクセスしたあるサイトでのことですが

CGIが使われていました。
トップ
ttp://ww.*****.com/okwave/

トップページからリンク先をクリックするとディレクトリ名が

ttp://ww.*****.com/local/このように変わったのを覚えていますが

これはどんな方法で設置しているのでしょうか?

補足日時:2008/10/27 06:42
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!