一般的にはページAからページBへリンクをたどっていくと、ページBを提供している サーバへは referer ヘッダが送信されアクセスログ等に記録されます。 アクセスログ解析では、この referrer を利用してページBがどこからリンクされているのか、どんな検索キーワードの検索結果ページから流れてきているかを 解析しています。
ページB(リンク先)を管理している側にとっては有用な情報ですが、 ページA(リンク元)を管理している側にとっては注意する場合があります。 会員サイトやWebメールを提供していて、そのページに外部リンクをユーザが たどるときにページAのURLが referrer として送信されてしまうからです。
そこで referrer を空にするリンクの作成方法を検索すると リファラ実験 - referrer test というページが見つかりました。リンクをたどるときにワンクッション追加 して、そのページで meta http-equiv refresh を使って <meta http-equiv="refresh" content="0;url=http://labs.qootas.org/"> のように外部リンク先(例では http://labs.qootas.org/)へ 移動した場合には referrer は送信されないようです。
query_string で外部リンク先URLを渡して meta タグの URL を埋め込んだ HTML 動的に生成する CGI 等を作れば 目的は達成できるのですが、最近 JavaScript にお熱なので gmail での実装例を参考に 書いてみました。以下のように OnClick と JavaScript で 同じことを実現することができます。
<html>
<head>
<script language="JavaScript">
<!--
OpenExtLink = function(el){
var url = el.href;
w = window.open();
w.document.write('<meta http-equiv="refresh" content="0;url='+url+'">');
w.document.close();
return false;
};
-->
</script>
</head>
<body>
<a onClick="return OpenExtLink(this)" href="http://labs.qootas.org/ext_link_test/" target="_blank">
extra link </a>
</body>
</html>
2005年5月26日 追記
kosekiさんのリファラ実験でこのJavaScriptが紹介されていました。
Operaの場合は別の方法を考えたほうがよさそうですね。
- Firefox 1.0.4 …… リファラは空になる。
- Netscape 7.2 …… リファラは空になる。
- Opera 8.0 …… リファラはこのページになる。Gmailでもリファラが残るのを確認。うむむ……。
- IE 6 …… リファラは空になる。

1 Comments
Operaだと駄目らしい。
http://www.teria.com/~koseki/memo/referrer/index.html
http://qootas.org/archives/2004/11/referrer.html
あたりを参考にしてください。