RSSから取得できるAmazonアソシエイトの商品画像が、正常に表示されないトラブル

Amazonの画像呼び出しエラー

このブログでは一部のAmazonアソシエイト広告に、RSSから取得した画像(のURL)を使用していた。RSSはAmazon側で自動更新されるので、手動で変更する必要がなくて楽だからだ。

ところがつい先日、その広告の画像が正常に取得できていないことに気がついた。全てのリンクに「画像はありません」という汎用イメージが表示されていたのだ。どうやら、何らかの理由で上手く呼び出せなくなってしまったらしい。

早速AmazonのRSSを調べてみたところ、画像のURLが変わっていたことを発見した。端的には「httpがSSL対応のhttpsになっており、さらにその後のアドレスも微妙に変更されていた」ことにより、画像が呼び出せなくなっていたのだ。具体的に新旧を比べてみると、以下のようになる。

旧URL

http://ecx.images-amazon.com/images/

新URL

https://images-fe.ssl-images-amazon.com/images/

または、以下のURLも使われているようだ。

https://images-na.ssl-images-amazon.com/images/

新しいURLで検索してみるとサイトやブログ自体をSSL化した記事がいくつか引っかかってくるのだが、このブログは非SSLの「http://~」タイプなので直接は関係ない。しかし、確認してみるとAmazonのURLが「https://~」になっており、問題のRSSフィードもSSLになっていた。つまり、Amazon自体がSSL化して、それによって影響を受けたということなのかもしれない。通常、URLは自動でリダイレクトしてくれるのだが、スクリプトでURLを抜き出したり書き換えたりしている関係上、問題が出てしまったのだろう。

その後、スクリプト自体に小さい修正を加えることによって、問題は解決した。同じようなトラブルが起こっている人には、参考になるかもしれない。