« 連休が始まりました | メイン | デスクトップ 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