Как заставить сервер выдавать дату последнего изменения документа?

Реализовать возможность выдачи сервером информации о дате последнего изменения документа возможно несколькими способами. Среди таких способов можно отметить реализацию через код, добавленный в html файл, php файл или же через директивы, добавленные в файл .htaccess. Ниже приведены примеры каждого из способов, а так же варианты проверки корректности их выполнения.

Для реализации первого способа требуется добавить в html файл следующий метатег:
<meta http-equiv=»Last-Modified» content=»Sun, 17 Sep 2019 11:22:15 GMT»>

Для реализации второго способа требуется добавить в php файл следующие заголовки:
header(«Content-Type: text/html; charset=windows-1251»);
header(«Last-Modified: «.gmdate(«D, d M Y H:i:s»,time()-3600).» GMT»);

Для реализации третьего способа требуется добавить в файл .htaccess одни из следующих вариантов директив:
Первый вариант:
RewriteRule .* — [E=HTTP_IF_MODIFIED_SINCE:%{HTTP:If-Modified-Since}]
RewriteRule .* — [E=HTTP_IF_NONE_MATCH:%{HTTP:If-None-Match}]

Второй вариант:
ExpiresActive on ExpiresByType text/html «access plus 5 day»

Третий вариант:
Header set Last-Modified «17 Jun 2019 10:00:00 GMT»

Выполнив один из представленных способов, следует проверить корректность отображения last modified.
Для этого существуют специальные сервисы, такие как http://last-modified.com/ru/if-modified-since.html

Помимо этого проверить корректность отображения last modified возможно при помощи специального php скрипта, указанного ниже, в котором требуется заменить значение переменной url на собственный адрес файла, по которому находится файл с данным скриптом:
<?php
$ch = curl_init();

$url = ‘http://site.com/last-modified.php’;

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(‘If-Modified-Since: Sun, 01 Sep 2001 17:33:22 GMT’));

ob_start();
curl_exec ($ch);
curl_close ($ch);
$data = ob_get_contents();
ob_end_clean();

echo nl2br($data);
?>