CGIで別のWebページを表示するには?

[上に] [前に] [次に]
CGI初心者 [E-Mail] 2000/04/05(水) 11:55:07
アクセス回数に応じて、表示するページを決めるという内容を
CGI(Perl)にて作成しようと思っているのですが、CGIにて
htmlを自動的にCALLするには、どうしたら良いでしょうか?
(※ボタン押下により表示するのでは無く。)

初歩的な質問かもしれませんが、ご教示くだされば幸いです。
よろしくお願いいたします。

H&A 2000/04/05(水) 11:59:25
いちばん簡単なのは、CGI の出力するヘッダに

Location: 表示するページの URI

を追加することですね。
CGI でその HTML を自力ゲットして出力…という方法も考えられますが、ご質問の目的からしてあまりオイシクないと思います。

CGI初心者 [E-Mail] 2000/04/05(水) 13:33:22
H&Aさま、早速の御回答ありがとうございました。

print "Location: http://www.XXX.co.jp/\n";

というように、cgiファイルに書き込んだのですが
""内に記述している文字が、そのまま表示されるだけに
なってしまいます。
何か誤りがありましたら、ご指摘くださいませ。

Syn [E-Mail] 2000/04/05(水) 13:36:17
Location: はヘッダなので、

print "Content-Type: text/html\n\n";

のあとに書いてはいけません。

# すでに FAQ 化かしら?

たれ 2000/04/05(水) 13:36:41
print "Location: http://www.XXX.co.jp/\n\n";

のように改行を、もう一個増やしてください。
他のContent-typeなどは出力しないようにしてくださいね。

H&A 2000/04/05(水) 13:36:55
> ""内に記述している文字が、そのまま表示されるだけに
> なってしまいます。

前後の処理を見ていないのでなんともいえませんが…
「直前で "\n\n" を出力してしまったために、HTTP ヘッダでなく本文と解釈されてしまっている」ということかもしれません。../200004/00040048.htm などを参照ください。

H&A 2000/04/05(水) 13:43:41
みなさんすばやい…

> 他のContent-typeなどは出力しないようにしてくださいね。

HTTP/1.1 的には、Location と Content-Type を同時に出力し、さらに本文を送信してもオッケーです。

CGI初心者 2000/04/05(水) 13:45:48
[[解決]]
御回答をいただきました、皆さま。
おかげ様で、無事解決することができました。

ありがとうございましたっ!!

H&A 2000/04/05(水) 13:46:25
> HTTP/1.1 的には、Location と Content-Type を同時に出力し、さらに本文を送信してもオッケーです。

ごめんなさい。こんなことを書くと混乱の元ですね。
たれさんのおっしゃりたいことは、「Location はリダイレクト用のレスポンスヘッダなので、Content-Type などを出力しても意味がありません。リダイレクトさせる際には、リダイレクトに必要なヘッダのみを書くようにしましょう」ということですよね。

たれ 2000/04/05(水) 13:51:32
>たれさんのおっしゃりたいことは、「Location はリダイレクト用のレスポンスヘッダなので、Content-Type など
>を出力しても意味がありません。リダイレクトさせる際には、リダイレクトに必要なヘッダのみを書くようにしましょ
>う」ということですよね。

後でソース見たとき、「自分は何をやりたかったんだろう...」と
頭を抱える事になる原因になりかねないですしね(^^;

CGI初心者 2000/04/05(水) 13:51:52
[[解決]]
御回答をいただきました、皆さま。
おかげ様で、無事解決することができました。

ありがとうございましたっ!!

[上に] [前に] [次に]