ブックマーク禁止のページをブックマークする方法(続き

というわけでネタばらし。

次に「じゃあ、302 redirectはどうだ?」と考えました。試してみると、見事に成功しました!ブックマークされるのはリダイレクトされる先のURLになりました。

ということで、実験ページをはてなでブクマしてみてください。 Webブラウザで閲覧できるけど、はてなからブックマークが出来ないページになっています。

http://www.geekpage.jp/blog/?id=2007/11/22

当然といえば当然だけど、実験ページのようにリダイレクトされてしまうページをブクマするためには、
実験ページからほかのページにリダイレクトしないようにする必要があります。


ここでちょっとリダイレクトについて考えてみると、
リダイレクトは「君の探してる○○はもうあっちに行ってしまったよ」というサーバーのメッセージなわけで、
信じてリダイレクトを辿ったからといって、必ずそこに期待するページがあるとは限りません。
いつまでたっても城にたどり着けないカフカの「城」のような状況もありえるわけです。

つまり、リダイレクトが延々と続いてしまったら、はてなはどうしても途中で処理を打ち切る必要があります。


それでは、はてながリダイレクトにリダイレクトを重ねたときの挙動を調べてみましょう。

http://**/test_1.phpの中身を

<?php
header("HTTP/1.0 302 redirect");
header("Location: http://**/test_2.php");
?>
test_1.phpを開くとtest_2.phpにリダイレクトされます


として、これがtest_1.phpからtest_10.phpまであるとします。
こうすると、アクセスが来たらtest_1.phpからtest_10.phpまで順番にたらい回しされるわけですね。

test_1 > test_2 > test_3 > test_4 > test_5 > test_6 > test_7 > test_8 > test_9 > test_10


さて、test_1.phpをブクマしてみたところ、実際にブクマされたのはtest_8.phpでした。
もちろん、test_8.phpもtest_9.phpへリダイレクトされるようにはなっています。


ということはつまり、6回のリダイレクトで疲れたはてなが7回目のリダイレクトではあきらめてそのページをブクマしてくれることがこれで分かります。


これを応用してtest_7.phpのリダイレクト先を元の実験ページに指定してあげると、リダイレクトでこれ以上飛ばされることなくブクマできます。

test_1 > test_2 > test_3 > test_4 > test_5 > test_6 > test_7 > 実験ページ > geekなぺーじtop


あと、一度誰かがブックマークしたページでは、そのまま普通にブックマークできるようです。
誰かにブックマークされるたびに、はてなが同じページの内容を何度も取りにいくというのは考えにくいので、
内容を見ない=リダイレクトを追うこともしないのではないかと。


それから、ほかに応用出来そうな所を探してみたけど、about:blankとかftp://~~とかは全部駄目でした。残念。