同じURLが別々に複数のエントリに分かれている。
おかしいと思ったら、URLエンコードされた文字が含まれているURLと、エンコードされていないURLが別々にカウントされているということがわかった。具体的には、
http://d.hatena.ne.jp/keyword/TOKONA-X
と
http://d.hatena.ne.jp/keyword/TOKONA%2dX
が別々のURLとして扱われていた。URLエンコードは適切に処理して1つのURLとなるように扱って欲しい、と思った。
はてなカウンターとURLエンコードの挙動
上記のことに関連して、ちょっと変な挙動を発見した。
同じURLがエンコードされている/されていないで複数のエントリに分けられてカウントされるというのは、そういうURLでアクセスしてくるひとがいるのだかある意味で仕方がないとも言える。問題なのは、それが見かけ上区別できないから困るのだ。実際にソースを見てみるとこうなっていた。
<a href="http://d.hatena.ne.jp/keyword/TOKONA%2dX"> http://d.hatena.ne.jp/keyword/TOKONA-X</a>
リンク先は「%2d」なのに、表示される文字列としてはそれをわざわざ展開してくれているところに注目。これは検索文字列などでの日本語のURLエンコードを見やすくするための処理だと思われるが、その親切が副作用を及ぼした例といえるだろう。
日記の「リンク元」表示も同じだった。
この、エンコードされた/されてないURLが別々にカウントされるにもかかわらず、表示上はまったく同じURLとして見える、という トリビア 不具合は、はてなカウンターだけでなく、普通にダイアリーの「リンク元」表示を見ても同じだということがわかった。