前々から気になってたことがある。
画像検索でHITしたFC2ブログの画像は何故検索エンジンにフルサイズでキャッシュされないのか。
フルサイズでキャッシュされているところを見たことがない。
それともう1つ。
何故か画像検索でHITした画像だけ、そのFC2ブログ記事の該当する画像URLが404で開けない。
…何言ってるかわかんないね。
ggってみたら少し情報があった。
http://hobbybox2.blog54.fc2.com/blog-entry-439.html
まさにこんな状態。
画像検索結果経由だけでなく
直接FC2ブログの記事から画像を開いてもURLに「-origin」があると404で開けない。
(originを外せば開ける)
何故こうなった? もう少しggると次の記事がHIT。
http://in1111.blog.fc2.com/blog-entry-309.html
「*.fc2.com」と空以外のリファラで弾いてると見て間違いはないのだろうが。。
…納得いかないことがある。
仮にリファラにより遮断しているとするなら、直接FC2ブログの画像URLを
アドレスバーにコピペして開けばリファラなしで飛ぶはず。
なのに、俄然404のままで画像が姿を見せる気配がない。。
追記
なんで一度404食らうと以後画像URLコピペで飛んでも喰らい続けるのか、ようやくわかった。
FC2ブログの画像サーバーはリファラをチェックし、
外部サイトのリファラを検出すると301ステータスで404ページにリダイレクトすることが判明。
・
・
・
この301というのは、HTTPにおいて恒久的なデータ移転を示すもの。
詳しくは以下のWikipedia参照。
http://ja.wikipedia.org/wiki/HTTP%E3%82%B9%E3%83%86%E3%83%BC%E3%82%BF%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%89#3xx_Redirection_.E3.83.AA.E3.83.80.E3.82.A4.E3.83.AC.E3.82.AF.E3.82.B7.E3.83.A7.E3.83.B3
この301ステータスにはブラウザ共通の落とし穴がある。
そのリダイレクト情報がローカルにキャッシュされるという点だ。
HTMLや画像のキャッシュとは訳が違い、スーパーリロードでキャッシュを更新することができない。
…自分でも何言ってるかわからないので3行でまとめる。
要するに、
- 一度でも画像検索経由などで外部サイトのリファラをもった状態でFC2ブログの画像を踏むと
- ブラウザに「以後、この画像へのアクセスはもれなく404に飛ばすように☆」と教え込まれ
- その後キャッシュを消さない限り、リファラ関係なくその画像は404で閲覧不可になる。
と、いうこと。
゚.・(#`д´)・.゚ うざっ!!
原因がわかったところで、何とかできないかggったら出てくる出てくる。
chromeは、301リダイレクトをキャッシュしている - too_youngの日記
http://d.hatena.ne.jp/too_young/20110303/1299149420
444 Failed: 301 リダイレクトをchromeがキャッシュする
http://sikaku444.blogspot.jp/2010/04/301-chrome.html
.htaccessによるリダイレクトをやめてもIE9のみリダイレクトされ続ける
http://social.technet.microsoft.com/Forums/ja-JP/internetexplorerja/thread/3185f4a3-0041-4526-96f6-a30ff78528b3/
クライアント側での対処法は、やはりキャッシュ一括削除しかないっぽい。
ここで注意すべきはIE。
IEはキャッシュ削除しても301の情報だけは残る。
(これに気づくのに1時間かかった。ハメられた。)
IEの場合、上に貼ったはてダのコメントにあるように
InPrivateモードで起動し、301を埋め込まれた404画像のURL(-origin付き)を
一度アドレスバーにコピペで踏む。
完全に読み込みが終わったらInPrivateモードを閉じ、IEを通常起動。
通常IEで再びその画像URLをコピペで踏むと
以後、また外部から踏んで301植え直ししない限りちゃんと表示される。
そもそも何故404?
よくわからない条件分岐で弾かれる云々はともかく、
画像自体はちゃんとそこに存在する。
それを404とか、頭おかしいの?
常識的に考えて普通は403。
既にリクエストが投稿されているようだが未だに受理されていない。
画像が外部からの直リンクではなぜか「404NotFound」。403にすべきでは。 - FC2リクエスト
http://request.fc2.com/view_wish.php?wid=5_1268236423_747040
つーか何故301?
エラーページのリダイレクトステータスは常識的に考えて302か307。
301はwwwやindex.html有無の統一(URL正規化)にしか使わない。
(というかそれ以外で普通使うもんじゃない)
…言っちゃ悪いけど、FC2ブログの担当者の頭は大丈夫か?
FC2という企業自体アレだけど
仮にも大手ブログのブログシステムがここまでいい加減だとは思わんかった。
そんな意味不なブログサービスで「○○画像まとめ」や写真日記みたいな
画像メインの用途に使ってる人の気もどうかしてる。