電子書籍の厳選無料作品が豊富!

CGIで表示されるページ(hoge.cgi)に
<meta http-equiv="Refresh" content="5;URL=www.abc.com">
とメタタグを記述し、5秒後に指定URL(abc.com)に飛ぶようにしているのですが、
この方法ですとジャンプ先(abc.com)ではリンク元(hoge.cgi)が特定できません。
ジャンプ先でリンク元URLを特定できるようにしたいのですが、何か方法はありませんでしょうか?

A 回答 (1件)

 refreshの場合は、それを受け取ったブラウザは、HTTP要求ヘッダ内にrefererを含めません。

含んではならない。refererは能動的に参照するという意味があるからですね。したがってサーバーの環境変数HTTP_REFERERには値が入ってこない。
 したがって他の手段を用いる必要があります。良く使われる方法は
・Cookie 
 いわゆるtracking Cookieですが、この場合セキュリティソフトで消される場合がある。
・Web ビーコン
 ジャンプ先のサーバーで画像を出力させる。セキュリティを高レベルにしていると、表示しているページのドメインと異なる場所の画像は読み込まない場合もある。
 手法については
   下記の様に、単一の画像ファイル「a.jpg」を呼び出して、 - CGI - 教えて!goo
    ( http://oshiete.goo.ne.jp/qa/5901567.html )
・PATH_INFOやQUERY_STRINGSなどに含めて、refere先のサーバーで処理する。

 私は、この3つを併用しています。最後の方法については、
・DirectoryIndexで、index.cgiを表示させるようにするか、index.htmlをCGIとして動作させる、あるいはindex.phpを使い、
 <meta http-equiv="Refresh" content="5;URL=www.abc.com/hoge.com/">
 <meta http-equiv="Refresh" content="5;URL=www.abc.com?hoge.com">
のようにする。

 処理後直ちにページを閉じた場合なども含めて確実に補足するには、3つを併用するとよい。
    • good
    • 0
この回答へのお礼

詳しく解説していただきありがとうございます。
教えていただいた3つの方法をまずは自分で調べから試してみようと思います。

お礼日時:2010/06/01 18:34

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!