さて、FTPソフトから見えるディレクトリ構造は大体理解しました。
我々が利用可能なディレクトリは"homepage"と"cgi-bin"の2つです。
ルートは見えませんが、これを意識しないと今後の話が非常に理解し辛くなるので、仮に"root"とします。すると・・・、こんなかたちです。
が、これはあくまでFTPソフトから見た時の話で、一般のユーザーがブラウザからHTTPアドレスでアクセスする時は、@homepage独特の仕様として、
/cgi-bin/ディレクトリ内を参照するURLは
http://hpcgi?.nifty.com/*****/
/homepage/ディレクトリを参照するURLは
http://homepage?.nifty.com/*****/"?"はあなたのサーバーNo.
"*****"はあなたのユーザー名
ですね
と、それぞれを参照しに行くURLアドレス自体が違うという制約が加わり、
"homepage"と"cgi-bin"ディレクトリのそれぞれが、まったく別のサーバーに置かれた独立したルートディレクトリとしてしか見えないのです。この仕様でどんな影響があるかと言うと、
例えば、
/homepage/ ディレクトリに "index.html" を、
/cgi-bin/ ディレクトリに "index.cgi" を置いたとして、
http://homepage?.nifty.com/*****/index.html から
<A HREF="../cgi-bin/index.cgi">では、CGIを呼び出せず、
http://hpcgi?.nifty.com/*****/index.cgi と、
URLのフルアドレスで指定しなければ呼び出せないのです。
(もちろん、http://homepage?.nifty.com/*****/../cgi-bin/index.cgi なあんて小細工しても無駄(笑))
まあ、これだけなら、リンクの設定などが多少面倒になる程度なのですが、もうひとつ、これも@homepage特有の仕様で、
CGIの実行に関係のないファイルをcgi-binディレクトリに置いて、その場所を指定してもブラウザで表示させることはできません |
というのがあります。
これがどういう意味かというと、例えば、
/cgi-bin/ ディレクトリに "index.html" ファイルを置いて、
http://hpcgi?.nifty.com/*****/index.html と呼び出しても、
表示されないのです。
これは、HTMLファイルに限らず、GIFやその他でも同じで、要するに、
「/cgi-bin/ ディレクトリに置いたファイルは、ブラウザからは "*.cgi" ファイルしか呼び出せない」ということなのです。(↑この下線部分も後で重要です)
さて、この仕様によって、具体的にどんな影響が出るかというと、
うーーん・・・どうも、↑文章の歯切れが悪くないかい?
もっと簡潔に、「CGIファィル以外は置けません」だけでいいんじゃないの?そう、ところが実際には、 "*.log" などの掲示板用ログファイルはここに置けるし、アクセスカウンタ用の "GIF" ファイルなども置けてしまうのだ。
また、「HTMLファイルは/cgi-bin/下に置けない」ので掲示板の過去ログなどを/homepage/下に置いたとして、「CGIから/homepage/を見に行くにはURLアドレスで呼び出さなきゃいけない」らしいんでそのよーに設定したら・・・「ログが書き込めない」と怒られたんですがー・・・
実は、この(謎)を解くには、「CGIスクリプトが何をやってるか?」という深い部分に、ちょっとだけ踏み込まなければいけないのだった。
げげっ、オレ初心者だってばー ってことで・・・(つづく)