WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:リダレクトについて

0:[投稿] アクア [2002/12/30 14:34 ][環境:win2000 win2000サーバ iis cgi perl]

CGIの中でリダイレクトすると携帯でj-phoneは移動するのにドコモは移動せずに白い画面のままなのはなぜなんでしょうか?
ドコモはリダイレクトが効かないのか解らないので知っている方居たら教えてください。

リダイレクト記述は以下です
print "Content-type: text/htm\n\n<htm><head><meta http-equiv=\"refresh\" content=\"5;url=http://www.xxx.xxx.xxx.xx/index.asp\">\n</head></htm>";


1:[回答] さら [MAIL] [2002/12/30 14:54 ]

DoCoMo(I-mode)端末は<meta http-equiv="refresh" には対応していません。
リダイレクトしたいなら
print "Location: http://www.xxx.xxx.xxx.xx/index.asp\n\n";
とすればドコモでもリダイレクトされます。
この方法ならほぼ全ての端末(EZweb,IE,NN,Opera等)で有効です。


2:[回答] アクア [2002/12/30 15:26 ]

print "Location: http://www.xxx.xxx.xxx.xx/index.asp\n\n";
ha
は最下層に記述しても動くのでしょうか?
CGIの中身は環境実数を取ってますのでその後に動かしたいんです。


3:[回答] ひじ [2003/01/01 18:24 ]

>>2
「最下層」の意味が今一つよく分からないのですが、
CGIは、
HTTPヘッダ、空行、本文
を順番に標準出力に出せばよい、というものです。
>>0 を書き直して、
print <<EOD;
Content-type: text/htm

<htm><head><meta http-equiv="refresh" content="5;url=http://www.xxx.xxx.xxx.xx/index.asp">
</head></htm>
EOD
とすると分かりやすいでしょうか。
#htmという怪しげな要素がありますが、そのままにしておきます
以前 http://www.parkcity.ne.jp/~chaichan/qanda/qa3446.htm#r6 で書きましたが、telnetを使うと、CGIの理解がしやすくなると思います。

で、この出力の前になにか別のものを出力すると、それもヘッダとみなされてしまうので、エラーなどになったりするのです。

>>2 に対する答えとしては、「ヘッダを出力する前に標準出力に何も出力しなければよい」というのが答えです。


4:[完了] アクア [2003/01/14 12:31 ]

「ヘッダを出力する前に標準出力に何も出力しなければよい」というのが答えです。

その通りでした。何か余計なのがあったのかもしれません・・
今は全てのキャリアを認識しているので問題なく動いています。

有難う御座いました。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World