Do You PHP はてブロ

Do You PHPはてなからはてブロに移動しました

ページ内ジャンプをアクセスログに記録する

通常だと記録されませんが、

  • 内部リンク名をQUERY_STRINGなどに付けて、非同期でアクセスさせる
  • document.locationを書き換える

をやれば実現できますね。以下、コードは適当です ;-)

<html>
<head>
<script type="text/javascript">
<!--
function link(key) {
  xmlhttp = new XMLHttpRequest();
  xmlhttp.open("GET", "inner?" + key);
  document.location.href = "#" + key;
}
//-->
</script>
</head>
<body>
<a href="javascript:link('list')">jump</a>
        :
</body>
</html>

これで、ページ内ジャンプしつつ、access_logに

xxx.xxx.xxx.xxx - - [12/Oct/2006:22:37:53 +0900] "GET /path/to/inner?list HTTP/1.1" 200 213

みたいに出力されます。あとはawstatsなりWebalizerなりで集計しちゃってください。