• ベストアンサー

CGIからHTMLファイルを作るには?

フリーの2ちゃん系の掲示板CGIを見ていて ふと、思ったのですが 2ちゃんねるって実際に消費者がアクセスするファイルは[.html]ファイルになりますよね? つまり、CGIでなんらかの処理をして[.html]ファイルにする事ができるんですよね? どうやったらいいか、ナニカ説明系のページご存知ないですか? 前出のダウンロードをしても、恐ろしくファイルが分かれていて、どこにその処理をしている部分があるのかわからないんです。 HTMLに書き出す要点部分だけが知りたいんですけどね 実はこれ理由があって、(この理由も間違いかもしれないんですけど) HTMLファイルの方が検索エンジンにひっかかりやすいんでしょ?(だから2ちゃんのスレッドはGOOなどでもひっかかりやすい)と予測してます ここの拡張子も。PHPなので、引っかかりにくいのではと判断してます。 検索に引っかからせたやすいCGIを作る場合 HTMLに吐き出せるのであれば是非とも利用したいです。 宜しくお願いします。 フリーのCGIをダウンして、ちょっとした改造ぐらいならできる知識程度の持ち主です。

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.5

#3です。 >それにしては .cgiファイルよりも.htmlファイルの方が >上位にきてると思うのは、ただのそのファイルの中身によるものなのかどうかってのがわからなくなりました。 技術的には前回書いたので、ちょっと横道にそれます。 私のblogも xxx.yyyy.ne.jp/zzzz.php?id=myname の形式でしたが、アクセス解析を見ると大半が検索ページからです。一度、「あれ?こんな検索ワードで何でうちのページに来るんだ?」と思ってgoogleでその語を検索して見るとトップだったことがあります。 検索ページからのアクセスを増やすためには、 ・メジャーな言葉をいっぱいちりばめ、とにかくヒット率を上げる ・マイナーなアイドル名やカルト系の言葉をいれ、ヒット回数は少なくてもその言葉での検索の上位を目指す 等が考えられると思いますが、個人のページなら本末転倒な気がします。 1日100アクセスあったとして、 1) 100ユーザーが検索ページからアクセスし、他のページは見ていない 2) 10ユーザーが検索ページからアクセスし、それぞれ10ページずつ参照した のどちらが自分にとって嬉しいでしょうか? もし後者なら検索でのヒットにこだわらず、内容の充実を図るのが本筋だと思います。そのうち、「リンク元不明≒お気に入りなどからの参照」も増えてくるでしょう。

その他の回答 (4)

  • naoto0314
  • ベストアンサー率34% (25/73)
回答No.4

すみません・・・ .htmlと書いてあったので勘違いをしていました。 2ちゃんねるの場合は /(スラッシュ)で区切ってあるのでhtmlファイルに見えますが、実際はcgiがHTMLで出力しています。 /(スラッシュ)で区切られた文字列は環境変数PATH_INFOで読み取ることができるようになっています。 2ちゃんねるでは、read.cgi/xxxx/xxxx/となっています。 これは、CGIの仕様としてとほほのWWW入門で解説されています(http://tohoho.wakusei.ne.jp/wwwcgi3.htm)。 あとは、notnotさんの説明の通りです。

deepimpact
質問者

お礼

ありがとうございました。 わかりやすかったです

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.3

cgiの場合、htmlファイルかどうかに拡張子は特に関係ありません。ブラウザは、ウェブサーバーからの応答のヘッダ部分に、 Content-type: text/html とあればそれでhtmlファイルとみなします。ブラウザで、ソースを見る機能があると思いますが、ソースの前に送られる情報なので、ブラウザで直接見ることは出来ません。ソース中に <meta http-equiv="Content-Type" content="text/html; charset=......"> と書いて代用されているケースもあります。 上記でhtmlファイルと書きましたが、cgiで作られるページは一旦ファイルに入れられそれから表示されるわけじゃなくて、普通はそのままブラウザに送られるので、htmlファイルじゃなくてhtmlデータとでも呼ぶべきものです。 cgiじゃない普通のファイル表示の場合は、ウェブサーバーがファイルの拡張子を見て、Content-Type: の値を設定してブラウザに送るようになってます。サーバーの設定ファイルの中に拡張子とContent-Typeの関連を書いた設定ファイルがあります。 まとめると、cgiの場合もそうでないファイルの場合も、ブラウザでは拡張子じゃなくて、Content-Type: text/html によってhtmlであることを認識します。 >ここの拡張子も。PHPなので、引っかかりにくいのではと判断してます。 というわけで、拡張子は関係ありません。 >HTMLに書き出す要点部分だけが知りたいんですけどね Content-Type: text/html; charset=Shift_JIS とかをcgiプログラムの先頭で出力すればOKです。

deepimpact
質問者

お礼

すいません。正直よくわかりません。笑 notnotさんの説明が悪いのではなく私の理解度の低さだと思います。 つまり、 Content-Type: text/html; charset=Shift_JIS とかをcgiプログラムの先頭で出力すれば 拡張子関係なく検索のクロールは回ってくれるということは理解したつもりです で疑問なんですが、 Content-Type: text/html; charset=Shift_JIS ってのはダイタイのCGIで設定されてますよね? それにしては .cgiファイルよりも.htmlファイルの方が 上位にきてると思うのは、ただのそのファイルの中身によるものなのかどうか・ってのがわからなくなりました。 うーん

  • naoto0314
  • ベストアンサー率34% (25/73)
回答No.2

#1です。 KENT WEB(http://www.kent-web.com/)の掲示板のSUN BOARDはログの表示部分をHTMLで出力されています。

参考URL:
http://www.kent-web.com/
deepimpact
質問者

お礼

ありがとうございました~ たすかりました。 KENTさんのとこにあったとは・・よくつかってるのに笑

  • naoto0314
  • ベストアンサー率34% (25/73)
回答No.1

簡単に言えば、CGIでHTMLを変数に準備して拡張子がhtmlのファイルに書き込むようにすればいいだけです。CGIは基本的にどんな拡張子でも扱えます。 よく、フリーのCGIなどにデータファイルへのパスなんかありますよね。大抵は拡張子が.datや.log等ですが、.htmlでも可能です。ただ、パスワードファイルなどは検索エンジンに引っかかったらダメなので.dat等になっています。

deepimpact
質問者

お礼

多分、これで正解ですね。本当にありがとうございました。 こんな事に気がつかないとは・・ これをやってるフリーのCGIのサイトどっかないでしょうか?

deepimpact
質問者

補足

ああ、ありがとうございます。 つまり、.datなどで吐き出す時に $moufile="test.html" if (!open(NOTE,">$moufile")) { &error(bad_file); } print NOTE @MOU; close(NOTE); でいいという事ですか・・ガーン きがつかなかった。笑 あれ、あ、ヘッダー(<title>とか)は・・ ってその部分は後付すればいいのか・・フッターも・・ ああ、ああ、できますね。すごい! そういう意味ですよね?

関連するQ&A