定期的に繰り返される話題だけども一応、確認の意味で。
1. Bookmarkletを使う
同居人が、なんでAmazonのURLってこんなに長いの?もー!
(最近買って便利だった商品をメールで教えてあげたかったらしい)
と言っていて「そういえばBookmarkletどこかにあったなー」と思って探したらすぐに見つかった。
IRCでbookmarkletのほうが使ってもらえそうじゃないか、という話があったので、とりあえず作ってみた。
本体はこんなの。わかりやすいですね。
javascript:var%20asin=document.getElementById('ASIN').value;location.href='http://amazon.jp/dp/'+asin;
例えばこれを以下のURLに適用すると、
http://www.amazon.co.jp/%E3%83%91%E3%83%BC%E3%83%95%E3%82%A7%E3%82%AF%E3%83%88PHP-PERFECT-3-%E5%B0%8F%E5%B7%9D-%E9%9B%84%E5%A4%A7/dp/4774144371/ref=sr_1_1?s=books&ie=UTF8&qid=1294494028&sr=1-1
こうなります。
http://www.amazon.co.jp/dp/4774144371
おおお。
2. 「知らせる」機能を使う
メールで教えるのであればAmazonにも機能があります。右の方のメールアイコン。
これを押すと以下のウィンドウが開きます。
で、その「商品URL」の部分が先ほどのものとほぼ同じURLです。
(dp→gp/productの文だけちょっと長いけど)
3. URL短縮サービスを使う
短いドメインを使ったURL短縮サービスはもう普通になっていますが、bit.lyでAmazonの商品URLを短縮すると「amzn.to」になります。http://www.amazon.co.jp/dp/4774144371
↓
http://amzn.to/9ei0si
URL短縮サービスを使うと、URLを見てそれが正しくAmazonのURLか解りにくくなるので「URLを短くする」という話題では少し邪道ですが、「amzn.to」のドメインはAmazonのURL専用らしいので、個人的にはまぁまぁ安全かなとも思っています。
なお変換は、bit.lyのブックマークレットを使うと簡単です。
javascript:var%20d=document,w=window,enc=encodeURIComponent,e=w.getSelection,k=d.getSelection,x=d.selection,s=(e?e():(k)?k():(x?x.createRange().text:0)),s2=((s.toString()=='')?s:('%22'+enc(s)+'%22')),f='http://bit.ly/',l=d.location,p='?v=3&u='+enc(l.href)%20+'&s='+enc(d.title)+'%20'+s2,u=f+p;try{if(!/^(.*\.)?tumblrzzz[^.]*$/.test(l.host))throw(0);tstbklt();}catch(z){a%20=function(){if(!w.open(u))l.href=u;};if(/Firefox/.test(navigator.userAgent))setTimeout(a,0);else%20a();}void(0)
ちなみに長いURLの意味は…
まぁいろいろとあるんでしょうけど、簡単に言えば、Amazonの都合で検索エンジン対策またはアクセス解析のためにずらずらとデータが繋がっている、ということですね。商品名をURLに織り込むのは有名なSEOですし、「ref=」はどこ経由でそのページにたどり着いたかを表しているようです。例えば先ほど挙げた商品ページの「この商品を買った人はこんな商品も買っています」の左から3番目のURLはこんな感じになっています。
http://www.amazon.co.jp/Pocket詳解-CakePHP辞典-滝下-真玄/dp/4798027456/ref=pd_sim_b_3
「ref=pd_sim_b_3」の部分を見るに「sim_b」が「この商品を買った人はこんな商品も買っています」で、その3番目ではないかなどと推測できます。普通は「そんな長いの付けたら不便じゃないか」と思うんですけど、どうせURL直打ちなんかしない(確かに実際ほとんどしない)という割り切りがあるんでしょうね。
まー良いか悪いかはよく解りませんけど。