« 連休が始まりました | メイン | デスクトップ PC を注文した »

2005年09月23日

% がエンコードされる

検索エンジンなどから CEEK.JP の検索結果に飛ぶと、正常に検索されない場合があったので対応しました。

http://www.ceek.jp/search.cgi?q=%B8%A1%BA%F7

CEEK.JP にて「検索」というキーワードで検索すると、このような URL になります。

http://www.ceek.jp/search.cgi?q=%25B8%25A1%25BA%25F7

しかし、張られるリンクがこんな感じになる場合があるようです。要は、エンコードされた URL が、またエンコードされているということです。再帰的に繰り返すと、永遠に長くなりそうです。

$value =~ s/%(?:25)?([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;

こんな感じで対応。

一部のキーワードで検索できなくなります。その一部のキーワードは、いままで1度も検索された形跡がありませんでした。ということで、ユーザーに与える影響は、ほとんど無し(のはず)。

ちなみに、誤って(?)エスケープされたリンクをたどった検索は、全体の3割を占めていて、無視できない状態となっておりました。もっと早く気づけばよかったです。

検索エンジンを運営している方(それ以外のウェブアプリケーションも)は、一度、検索ログをチェックしてみてはいかがでしょうか?

2005年09月23日 02:50 | Development

トラックバック

コメント