Кэширование запросов изображений через PHP - If-Modified-Since не отправляется

Я передаю изображения через php, и у меня возникают некоторые проблемы с настройкой так, чтобы он отвечал 304 заголовками, чтобы сэкономить время загрузки.

Большую часть кода ниже я нашел на php.net. Это работает, однако ВСЕГДА отвечает 200.For some reason the If-Modified-Since header is not being received on any requests even though I am sending the Last-Modified header initially. Это делается на сервере Apache. Есть идеи, что может быть не так?

Пример тут.

Эта страница загрузит изображение с диска и отобразит его в браузере, а также отправит заголовок Last-Modified. Если вы обновите страницу, браузер не отправит заголовок If-Modified-Since, как должен.

<code>define('SITEPATH', (dirname($_SERVER['SCRIPT_NAME']) == '/') ? '/' : dirname($_SERVER['SCRIPT_NAME']).'/');

$load_path = $_SERVER['DOCUMENT_ROOT'] . SITEPATH . 'fpo_image.jpg';

// Get headers sent by the client.
$headers    = apache_request_headers(); 
$file_time  = filemtime($load_path);

header('Cache-Control: must-revalidate');
header('Last-Modified: '.gmdate('D, d M Y H:i:s', $file_time).' GMT');

if (isset($headers['If-Modified-Since']) && (strtotime($headers['If-Modified-Since']) == $file_time)) {

    header('HTTP/1.1 304 Not Modified');
    header('Connection: close');

} else {

    header('HTTP/1.1 200 OK');
    header('Content-Length: '. filesize($load_path));
    header('Content-type: image/jpeg');                         

    readfile($load_path);

}
</code>

Ответы на вопрос(5)

Ваш ответ на вопрос