• ベストアンサー

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

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

  • CGI
  • 回答数5
  • ありがとう数6

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

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4846/10257)
回答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% (4846/10257)
回答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

  • HTMLスキン型CGIを作るには?

    フォームメールの制作を行っているのですが、汎用性を高めるために、HTML部分はすべて外部に書き出して処理に関するところだけをCGIに記述しようと考えています。 まず、デザインテンプレート(HTMLスキン)に$html_contentsなどと挿入位置を記述しておき、 CGIへのアクセスがあった際に、スキンを読み込み、その挿入位置に結果を代入するというものです。 できるなら、エラーメッセージや完了メッセージの部分も外部(HTMLを記述した*.datかな?)ファイルとしたいです。 参考になるサイトもしくは、プログラムをご存知の方はご教授願います。

    • 締切済み
    • CGI
  • 価格表。作るならcgi ? HTML ?

    価格表を作りたいのですが、 HTMLで作ったほうがいいのか、 CGIで作ったほうがいいのか迷ってます。 CGIは、改造するぐらいなら出来ます。 HTMLは、ゼロから作れます。(気合いで) できればCGIを使いたいのですが、 何かいいフリーソフトってありますか? 使用方法としては、 車のパーツ販売なのですが、 ・最初にメーカーを選ぶ(10項目) ・→車種を選ぶ(40項目) ・→商品を選ぶ(10項目) ・→価格が表示される。 というような感じで考えています。 アドバイスお願いします。

  • CGIの処理結果をHTML内に表示したい!

    はじめまして。 CGI初心者です。 現在、とあるフリーのアンケートのCGI(perl)を改良していて、それは、アンケートに答えて、送信ボタンを押すと、CGIファイルの処理結果として、これまでのアンケートの集計結果がグラフで表示されるというものです。 その集計結果のみを、別ページ(左側や上部にメニューがあるもの)のHTML内に収めたいのです。 ※新しいウィンドウが開かなくてもOKです。 ※その別ページというのが私のオリジナルのページになります。 イメージとしては、 1)anket.html(アンケートに答える)  ↓ 2)anket.cgi(返答内容とこれまでの集計を処理)  ↓ 3)anket.html(集計結果が埋め込まれたHTMLファイルが表示される) 初心者なので、用語の使い方等間違っていましたらすいません。。 よろしくお願いします!

  • CGI(Perl)とHTMLについて

    CGI初心者です、Perlの知識は皆無です。 質問は2つあるのですが・・・ 1、CGIのページを例えば画像を呼び出すようにHTMLで指定できるのでしょうか? 画像であれば<img src=".../AAA.gif">ですが、こんな感じでCGIのページ自体をHTMLの指定した枠に呼び出すことはできるのでしょうか。 2、CGIページのカスタマイズ 現在、CGIレスキューさんからダウンロードしたファイルをカスタマイズしています。 条件指定ができる検索データベースです。 設置と動作確認はできたのですが、思うようにレイアウトできないでいます。 Perl記述中にテーブル(HTML)を挿入すると、プルダウンメニューから選択項目が飛び出してしまうのです。 (おおざっぱに記述すると) print <<"---HTML---"; あいうえお<select name="aiueo" size=1> ---HTML--- forseach $i (@AIUEOs) { print "<option value=\$i\"$pref_selected{$i}>$i</option>\n";} print <<"---HTML---"; </select> <p> (略) ---HTML--- こんな感じです、変数の部分は変えてます。 ずっと上の方で、 @AIUEOs = ("あああ", "いいい", "ううう", "えええ", "おおお"); と、変数が定義されてるようです。 名称かきく「プルダウンメニューA」 名称あいうえお「プルダウンメニューB」 要は、「 」の部分を揃えたい(縦に整列)のですが、うまくいきません。プルダウンメニューが飛び出してしまいます。 2段目のHTML記述部分がなぜ閉じタグから始まっているのかもよくわからないです。 端折ってますので、分かりにくいと思いますが、コメントいただける方、よろしくお願いします。

    • ベストアンサー
    • CGI
  • HTMLにCGIカウンターを

    初歩的なCGI(Perl)のアクセスカウンターの作り方を学びました。 今まではHTMLでHPを作成していました。そこでトップページにアクセスカウンターを付けたいのですが、当然のことながら今のトップページは「index.html」ファイルです。このファイルにCGIによるアクセスカウンターをつける場合、「index.html」のファイルを一から「index.cgi」ファイルにPerlで書き換えなければならないのでしょうか。今の「index.html」の一部分を書き換えるだけでCGIのアクセスカウンターが設置できないものでしょうか。

    • ベストアンサー
    • CGI
  • CGIファイル に JavaScript

    CGIのファイルにJavaScriptを書き込んでも 問題はないでしょうか? CGIのファイルを開きますとHTMLの部分がありまして、 そこにJavaScriptを付け足したいのですが、 それは可能でしょうか。 実行すれば分かることだと思うのですが、 自分自身はプログラムの技術がなく分からないもので。 人から質問されて困っています。 すみませんが、よろしくお願いいたします。

    • ベストアンサー
    • CGI
  • CGIでのHTMLとプログラムコードの分離について

    CGIでのHTMLとプログラムコードの分離について CGIプログラミングのフレームワーク的なアイデアについてご教示願いたいです。 CGIを記述する場合、その多くは下記のようなスタイルになるのではないかと思います。 1.formタグのactionからcgiを呼び出す     ↓ 2.cgiの中で計算やsendmail等の処理を実行     ↓ 3.結果をブラウザ上に表示するためprint等を利用してhtmlタグを表示 この手法を用いると、手順2のところでHTML部分とプログラムコード部分が混合してしまい、見栄え(html部分)を変更しようと考えた時、HTML部分の記述があるcgiプログラムを編集し、該当する部分のタグを表示させているであろうprint文の表示内容を変更する必要があります。 見栄えのhtml部分とCGIのコードを完全に分離することは出来ないのでしょうか??? 上記手順の「1」に関してはhtmlファイルを編集する事だけで、cgiファイルを編集する必要はありません。 手順「3」もリダイレクトを利用すれば可能だと思います。 問題は、手順「2」の部分です。 この部分の見栄え部分を変えようとすると、どうしてもcgiプログラムを開いて編集する必要に迫られてしまいます。 下記の例のような処理(見栄え用のhtmlファイルを読み込む方法)は出来ないものでしょうか? <例:アンケートフォーム> 1.アンケートフォーム(html)のformタグにあるactionからcgiを呼び出す     ↓ 2.cgiでformタグ内のテキストエリアやラジオボタン等の情報を収集     ↓ 3.収集結果を表示させるための「hantei.html」を読み込む     ↓ 4.読み込んだ「hantei.html」の中に収集結果を埋め込んで表示     ↓ 5.問題なければアンケート結果をsendmail等でメール送信   問題あれば手順1のアンケートフォーム(html)へ戻る     ↓ 6.無事にメール送信出来れば、有難うございましたページ(html)へリダイレクト 上記手順の3と4が実現できれば、見栄えを変えたい時はhtmlファイルを編集すればよく、cgiプログラムを触る必要がなくなるのではないかと思います。 私が考えている事について、「自分はこうしている」とか「そうではなくてこうすれば良いよ」などなどありましたら、是非ご教示願いたいです。

    • ベストアンサー
    • Ruby
  • DBとHTMLファイルを検索したい

    PHP+MYSQLででDBの検索機能を作成しました。 現在問題なく動くのですが、DBだけでなくHTMLファイルに書かれた文字列の検索も一緒にできるように改造したいのです。 例えば検索条件1が山田、検索条件2が太郎として、 テーブルに[山田]、HTMLファイルに[太郎]があるものを検索結果としてヒットさせたいです。 テーブルのデータとHTMLファイルを結ぶ条件としてテーブルにID項目があり、例えばIDが1234だったら1234.htmlというファイルが必ず1つだけ存在します。 データの数は現在30程度ですが、今後増え続けます。 HTMLファイルは大体20kbほどあります。 ヒットしたデータのIDと同じ名前のHTMLファイルを1つ1つstrrposを使って調べるとなるとやはり処理は重くなりますか? ちょっと説明がわかりにくいかもしれませんが、何か良い方法はないでしょうか。 アドバイスお願いします。

    • 締切済み
    • PHP
  • cgiで作られた画像掲示板がありますが

    cgiで作られた画像掲示板がありますが http://xxx...cgi-bin/imgboard.cgi (xxxは伏せてあります) というURLがあります ここの掲示板では5スレッドほど1htmlに表示しています そして、次の5スレッドほどをみたいときには imgboard.cgi というボタンを クリックしないと次の5スレッドが見れないです 何がしたいかというと このimgboard.cgi のボタンを押すという処理で 次のHTMLが表示されるので、この処理をプログラム(C/C++)で実装したいです ほかの掲示板では 1.htm 2.htm 3.htm とあり htm を直接呼べたのですが cgiだとこの直接呼び出すことができません どのようにして、プログラムでcgiを操作し次のhtmを呼び出すのでしょうか?

    • 締切済み
    • CGI
  • ページ内検索でcgiファイルを検索させたい

    商品番号から商品を検索したりするのに、サイト内検索を設置したいのです。 ネットショップのため商品データのファイルの拡張子はcgiです。いくつかフリーのcgiを設置してみましたが、htmlのファイルしか検索されませんでした。cgiのファイルが検索されるフリーのcgiはないでしょうか?

専門家に質問してみよう