meta refresh, Locationヘッダを使用した場合のHTTP_REFERERについて
<meta http-equiv="Refresh" content="0; URL=http://www.miyagino.net/" />
や、
print <<_EOF; Location: http://www.miyagino.net/ _EOF
のようなことをしていると、飛び先(http://www.miyagino.net/)ではHTTP_REFERERが設定されないようだ。これはどうもブラウザの仕様みたいでなんともしがたい。
このため、
- 設定側でクリック数をカウントしたい(バナー広告などのために)。
- 飛び先側でもバナーの有効性を調査するために参照元をカウントしている。
という場合、飛び先側では、参照元をカウントするときにHTTP_REFERERを元にしている場合は"0"になってしまう可能性があるようだ。
回避策
以下では、jqueryを使ってます。また、IEではURLが毎回変わらないとクリックを拾えないようで、時刻を埋め込んでます。呼び出すための引数(name,now)はダミーです。
<script src="jquery.js" type="text/javascript"></script> <script type="text/javascript"> //<![CDATA[ var BASE_URL = "count.cgi"; function count_up(id) { var now = new Date(); $.ajax({ type : "GET", url : BASE_URL, data : "name=" + id + "&now=" + now.getTime() }); } //]]> </script> .... <ul> <li><a href="http://www.miyagino.net/" onclick="javascript:count_up('test');">バナー</a></li> </ul> ....