ユーザーのブラウザで Etag を確実に設定するのに問題があります。ユーザーが外部リンクの 1 つをクリックすると、記事 ID を Etag に設定したいと考えています (私も Cookie を使用していますが、Etag を具体的にテストしてその信頼性をテストしたいと考えています)。
同じユーザーが数時間/数日後に私のサイトに戻ってきたときに、Etag 値を読み取ってそれを何かに使用できるようにしたいと考えています。
最初のクリックで Etag を設定できますが、ユーザーが戻ったときに Etag 値が消えています。期限切れか何かだと思います。これが私が試してきたコードです:
<?
$time = 1280951171;
$lastmod = gmdate('D, d M Y H:i:s \G\M\T', $time);
$etag = '123';
$ifmod = isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) ? $_SERVER['HTTP_IF_MODIFIED_SINCE'] == $lastmod : null;
$iftag = isset($_SERVER['HTTP_IF_NONE_MATCH']) ? $_SERVER['HTTP_IF_NONE_MATCH'] == $etag : null;
if (($ifmod || $iftag) && ($ifmod !== false && $iftag !== false)) {
header('HTTP/1.0 304 Not Modified');
} else {
header("Last-Modified: $lastmod");
header("ETag: $etag");
}
print_r($_SERVER);
?>