緊縛の@homepage仕様

(謎)だらけのはじまり

前へ 次へ トップに戻る

さて、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 なあんて小細工しても無駄(笑))

1.ホームページからCGIを呼び出すときは、"http://" からのURLアドレスで呼び出す事

2.CGIからホームページに戻る時も、"http://" からのURLアドレスで呼び出す事

まあ、これだけなら、リンクの設定などが多少面倒になる程度なのですが、もうひとつ、これも@homepage特有の仕様で、

CGIの実行に関係のないファイルをcgi-binディレクトリに置いて、その場所を指定してもブラウザで表示させることはできません

というのがあります。
これがどういう意味かというと、例えば、

/cgi-bin/ ディレクトリに "index.html" ファイルを置いて、
http://hpcgi?.nifty.com/*****/index.html と呼び出しても、
表示されないのです。
これは、HTMLファイルに限らず、GIFやその他でも同じで、要するに、

/cgi-bin/ ディレクトリに置いたファイルは、ブラウザからは "*.cgi" ファイルしか呼び出せない」ということなのです。(↑この下線部分も後で重要です)

さて、この仕様によって、具体的にどんな影響が出るかというと、

3.アイコン付き掲示板などのアイコン画像(GIFファイルなど)は、
 /cgi-bin/
下には置けない(置いてもいいけど表示できない)

4.掲示板の過去ログなど、HTMLで保存されるものは、/cgi-bin/ 下には置けない(以下同文)

うーーん・・・どうも、↑文章の歯切れが悪くないかい?
もっと簡潔に、「CGIファィル以外は置けません」だけでいいんじゃないの?

そう、ところが実際には、 "*.log" などの掲示板用ログファイルはここに置けるし、アクセスカウンタ用の "GIF" ファイルなども置けてしまうのだ。

これはどういうこと?

また、「HTMLファイルは/cgi-bin/下に置けない」ので掲示板の過去ログなどを/homepage/下に置いたとして、「CGIから/homepage/を見に行くにはURLアドレスで呼び出さなきゃいけない」らしいんでそのよーに設定したら・・・「ログが書き込めない」と怒られたんですがー・・・

これはどういうこと?

実は、この(謎)を解くには、「CGIスクリプトが何をやってるか?」という深い部分に、ちょっとだけ踏み込まなければいけないのだった。

げげっ、オレ初心者だってばー ってことで・・・(つづく)


前へ 次へ トップに戻る

PC用眼鏡【管理人も使ってますがマジで疲れません】 解約手数料0円【あしたでんき】 Yahoo 楽天 NTT-X Store

無料ホームページ 無料のクレジットカード 海外格安航空券 ふるさと納税 海外旅行保険が無料! 海外ホテル