Вопрос по заголовку Last-Modified и поисковой оптимизации

12
R1
На сайте с 20.04.2017
Offline
30
2422

Добрый вечер, уважаемые коллеги!

Вопрос у меня следующий.

Был у меня веб-сайт на html-документах, обычный статический сайт. Всего-то страничек восемь-десять не более. Затем я решил полностью перевести его на php-документы, то есть, расширения файлов на сайте тупо поменял на РНР, а со старых документов поставил 301 редиректы. Тут всё нормально.

НО!!! Возник вопрос по заголовку ответа сервера Last-Modified, поскольку по умолчанию мой хостер-провайдер не отдавал такие заголовки для динамических php-страниц. Пришлось искать сторонние решения в Интернете, по итогу нашёл вот этот сайт:

https://last-modified.com/ru/last-modified-if-modified-since-php.html

Так вот, там руками необходимо прописывать дату последнего обновления страницы. Вот код с вышеуказанного сайта:


<?php
$LastModified_unix = 1294844676; // время последнего изменения страницы
$LastModified = gmdate("D, d M Y H:i:s \G\M\T", $LastModified_unix);
$IfModifiedSince = false;
if (isset($_ENV['HTTP_IF_MODIFIED_SINCE']))
$IfModifiedSince = strtotime(substr($_ENV['HTTP_IF_MODIFIED_SINCE'], 5));
if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']))
$IfModifiedSince = strtotime(substr($_SERVER['HTTP_IF_MODIFIED_SINCE'], 5));
if ($IfModifiedSince && $IfModifiedSince >= $LastModified_unix) {
header($_SERVER['SERVER_PROTOCOL'] . ' 304 Not Modified');
exit;
}
header('Last-Modified: '. $LastModified);
?>

Вторая строчка кода -- $LastModified_unix = 1294844676; -- это как раз то, что мы прописываем руками.

Вопрос: какую именно дату прописывать руками в эту временную метку (дату, которая сейчас, или как её правильно определить?), прописывать технически временную метку я умею, но я не знаю какое именно время там ставить! Тупо брать из проводника Виндовс дату последнего изменения документа? Или из проводника хостинга по FTP-клиенту FileZilla? Как правильно туда вставить руками временную метку, откуда физически её взять, имею ввиду именно время, а не как прописать. Конвертеры в Интернете есть, я нашёл уже с десяток бесплатных, но время какое там писать, вот вопрос!! Помогите, пожалуйста, разобраться!

И как вообще это может отразиться на поисковой оптимизации моего сайта, особенно в Гугле? Нормально ли мой сайт будет попадать в индекс Гугла, имеется ввиду новые его страницы, не будет ли проблем с этим вопросом? Очень надеюсь на ваши комментарии и ответы, поскольку в данный момент это очень важно для меня.

В данный момент заголовки ответа сервера у меня на сайте для php-страниц выглядят таким вот образом:

Date: Wed, 02 May 2018 19:42:21 GMT

Server: nginx

Content-Type: text/html; charset=UTF-8

Content-Encoding: gzip

Vary: Accept-Encoding

Last-Modified: Wed, 16 Aug 2017 18:41:22 GMT

Transfer-Encoding: chunked

Connection: keep-alive

fliger
На сайте с 17.09.2015
Offline
84
#1

filemtime - Время последнего изменения файла в формате Unix (если файлы кэшируете - то время кэш-файла).

R1
На сайте с 20.04.2017
Offline
30
#2
fliger:
filemtime - Время последнего изменения файла в формате Unix (если файлы кэшируете - то время кэш-файла).

А как правильно посмотреть время последнего изменения файла? В проводнике Виндовс, или же другими методами? Заранее прошу прощения за, возможно, глупые вопросы. Но мне действительно важно знать, спасибо!

fliger
На сайте с 17.09.2015
Offline
84
#3
roman1981:
А как правильно посмотреть время последнего изменения файла?

Зачем его смотреть? Функция filemtime() его сама берет:

http://php.net/manual/ru/function.filemtime.php

По условию сверяете filemtime и Last-Modified. Если filemtime < Last-Modified, то отдаете 304 код, если больше, то страницу.

R1
На сайте с 20.04.2017
Offline
30
#4

fliger

Посмотрел внимательно описание этой функции на сайте php.net

$filename = "somefile.txt"; функция - filemtime($filename);

Вопрос: как правильно прописывать путь к этому файлу? От корня сайта, или же (как в CSS) путь к картинкам? Там в описание просто указано "somefile.txt", но как быть с путём к файлу, если к примеру РНР-скрипт у меня расположен в этом же файле? Указывать этот же файл, в котором и собственно расположен РНР-скрипт с функцией filemtime(), или же каким-либо иным хитрым образом?

fliger
На сайте с 17.09.2015
Offline
84
#5

Абсолютный путь к файлу от корня файловой системы хостинга:

<?php

$file = $_SERVER['DOCUMENT_ROOT'].'/ПУТЬ_К_ФАЙЛУ_ОТ_КОРНЯ_САЙТА/имя_файла.php';

// Для файла, который находится здесь: site.ru/papka/file-1.php

$file = $_SERVER['DOCUMENT_ROOT'].'/papka/file-1.php';

// Для любых файлов:

$file = $_SERVER['DOCUMENT_ROOT'].$_SERVER['SCRIPT_NAME'];

или

$file = $_SERVER['SCRIPT_FILENAME'];

$time = filemtime($file);

Далее сверяете $time и Last-Modified .

?>

R1
На сайте с 20.04.2017
Offline
30
#6

fliger

Спасибо вам огромное!!! Вы мне очень помогли!

fliger
На сайте с 17.09.2015
Offline
84
#7
roman1981:
fliger
Спасибо вам огромное!!! Вы мне очень помогли!

Не за что.

P.S. Кнопка для "Спасибо" в углу справа.

S1
На сайте с 02.10.2016
Offline
106
#8

Извиняюсь за глупый вопрос

Что обозначает число 5 ?

$IfModifiedSince = strtotime(substr($_ENV['HTTP_IF_MODIFIED_SINCE'], 5));
Постоянно обмениваюсь ссылками с качественными сайтами по теме электроника, радиолюбительство, электронные компоненты.
fliger
На сайте с 17.09.2015
Offline
84
#9
sanek1991:
Извиняюсь за глупый вопрос
Что обозначает число 5 ?

Учите матчасть: http://php.net/manual/ru/function.substr.php

S1
На сайте с 02.10.2016
Offline
106
#10
fliger:
Учите матчасть: http://php.net/manual/ru/function.substr.php

вы сами пробовали читать документ по своей ссылке ? ))

там нет ответа, почему именно 5, а не 6

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий