週明けの今朝、アンテナ巡回しようとアクセスしたら全てのリンクが未アクセスになっていました。 いつの頃からだったかアンテナ経由のリンクは、リンク先のアドレスを汚さないように、そして(その巡回で)アクセス済みかどうかを明らかにするためにリダイレクトするようにしています。 つまり、アンテナ上のリンクはクエリをつけてアンテナのリダイレクトスクリプトに遷移するようにしており、そのスクリプトではアンテナ登録されているアドレスかどうかを判別した後に余計なクエリを除去した上でリダイレクトを行う、という方法を採っています。
こういうの、この週末で何かしらの措置が取られたみたい、少なくとも WebKit で。
Feature: Bounce Tracking Mitigations on HTTP Cache
たぶん、このバウンストラッキング対策なんじゃないかなって思いました。 たぶん。 たぶんです。
で、原因はさておき、なんとかならんのかっていう話なんですけど、
header('Location: '.$url, true, 301);
exit;
これまでは header でリダイレクトしていたんです。 でも、っていうか考えてみれば当然なのかもしれないですけど、リダイレクト前のアドレスまでアクセス済みかどうか記録しているなんてどうかっていう話なんですよね。
die('<meta http-equiv="refresh" content="0; URL='.$url.'">');
だもんで meta refresh で終了するようにしました。 なんか前時代的な気もするし、弊害がありそうななさそうな感じがひしひしとするんですけど、なんとかなったんでこれでいいやっていうオチでした。