Отправляем заголовки Last-Modified и Not Modified
Написал небольшой плагинчик для отправки браузеру заголовка Last-Modified и, если браузер спросит If modified since — ответа 304 Not Modified
Для удобства оформил в пакет и добавил в репозиторий. Пакет называется modLastModified.
К сожалению, плагин не может знать, какие сниппеты вы вызываете на странице — он смотрит лишь на дату последнего редактирования ресурса. Поэтому использовать его стоит лишь на простеньких статичных сайтах. Или если SEO-шники очень просят)
Советую почитать комментарии к топику «last-modified + MS2».
Проще показать код, чем объяснить, что делает плагин)) https://github.com/ilyautkin/modLastModified
Для удобства оформил в пакет и добавил в репозиторий. Пакет называется modLastModified.
К сожалению, плагин не может знать, какие сниппеты вы вызываете на странице — он смотрит лишь на дату последнего редактирования ресурса. Поэтому использовать его стоит лишь на простеньких статичных сайтах. Или если SEO-шники очень просят)
Советую почитать комментарии к топику «last-modified + MS2».
Проще показать код, чем объяснить, что делает плагин)) https://github.com/ilyautkin/modLastModified
Комментарии: 74
Что даёт?
Какая разница по сравнению с полностью закешированной страницей, в милисекундах?
Какая разница по сравнению с полностью закешированной страницей, в милисекундах?
На самом деле я разницы не увидел. Даже не знаю, как заставить браузер сначала спрашивать If modified since у сервера. Но автоматические системы продвижения в своих рекомендациях указывают пункт, что у страниц сайта отсутствуют заголовки Last-Modified.
У меня не получилось объяснить SEO-шникам, что этот параметр, скорее всего, не влияет на ранжирование сайта в поиске. Проще было сделать, чтобы сайт успешно проходил проверку. Главное, чтобы без вреда.
У меня не получилось объяснить SEO-шникам, что этот параметр, скорее всего, не влияет на ранжирование сайта в поиске. Проще было сделать, чтобы сайт успешно проходил проверку. Главное, чтобы без вреда.
У меня не получилось объяснить SEO-шникам, что этот параметр, скорее всего, не влияет на ранжирование сайта в поиске.При прочих равных ранжироваться сайт с такими заголовками будет лучше, чем такой же сайт, но без таких заголовков (по описанным ниже причинам). Ибо все любят, когда о них заботятся. И поисковые машины не исключение =)
p.s. факт — о сути этих заголовков догадываются единицы. А seo-шники линко-закупаторы твердят о необходимости этих заголовков как мантру, совершенно не понимая их значения.
seo-шники такие seo-шники — они вообще мало о чём догадываются)
Не бывает равных условий для двух и более сайтов, как и нет абсолютно идентичных сайтов. Поэтому last-modified считаю не самым важным фактором.
Но чтобы стремиться к идеальному сайту, можно сделать.
Но чтобы стремиться к идеальному сайту, можно сделать.
Не бывает равных условий для двух и более сайтов, как и нет абсолютно идентичных сайтовКонечно не бывает.
Поэтому last-modified считаю не самым важным фактором.Ваше право.
p.s. забавляют меня такие ничем не подкрепленные утверждения. Прям Верю-Не верю. «Считаю так и всё тут». Больше похоже на образ мышления средне-рядового seo-шника линко-закупатора. Технарям подобные рассуждения не позволительны.
Вы считаете себя технарем?) Ваши утверждения чем-нибудь подкреплены?)
Как только робот делает запрос на страницу, у него появляется инфа о размере страницы. Если она отличается от предыдущего — то ясень пень, что-то на странице было изменено. Нет?
Как только робот делает запрос на страницу, у него появляется инфа о размере страницы. Если она отличается от предыдущего — то ясень пень, что-то на странице было изменено. Нет?
Вообще — нет. Если поменять пару опечаток — то размер будет прежним. Для этого используется заголовок etag — в nginx где-то можно настроить его так, чтобы он считался не из даты последнего редактирования документа (last-modiffied) и размера документа, а из md5 суммы. Вот тогда, даже при одинаковом размере страницы, робот поймет что в ней что-то изменилось.
Отлично. Согласен с этим утверждением.
Вы считаете себя технарем?Даже комментировать не стану.
Ваши утверждения чем-нибудь подкреплены?Да, я эту гипотезу проверял. Несколько месяцев стагнирующий (с т.з. seo-показателей) сайт, после настройки lmims-заголовков, подрос в позициях и трафике.
Естесственно, каждый случай уникальный и, что помогло одному, не поможет другому (если попадётся ещё какой-нибудь стагнирующую сайт — проведу ещё эксперимент.)
С тех пор ставлю на каждый сайт — жалоб, как вы понимаете, не было.
Технарь не должен принимать утверждение на веру. Любую гипотезу надо экспериментально доказывать.
Я гипотезу проверил и в ней уверен. А вы?
Очевидно, что экспериментов вы не проводили, но доказываете мне, что я не прав. Прям как типичный seo'шник-гуманитарий (только без обид, пожалуйста. Это только для примера, как делать не нужно).
p.s. ну и кто из нас технарь?? а? А?! АА?! =)
Если вы технарь, то провели бы более чистый эксперимент на большой выборке сайтов и в разных условиях. А то, что вы что-то там сделали и увидели изменения, это могло быть что-угодно, например, возраст сайта!
А вы успокойтесь, слюней не брызгайте, я не сеошник. Школу закончите, если в институт попадете, узнаете что такое эксперименты и как их правильно ставить.
А вы успокойтесь, слюней не брызгайте, я не сеошник. Школу закончите, если в институт попадете, узнаете что такое эксперименты и как их правильно ставить.
провели бы более чистый эксперимент на большой выборке сайтов и в разных условияхНикто не говорил, что выборка репрезентативна и статистически значима.
Я говорил о наблюдении, при котором стагнирующий несколько месяцев сайт, после настройки заголовков, через один апдейт улучшил свои позиции в поиске и набрал в трафике. Конечно же, это чистое совпадение, lmims-заголовки здесь не причём, а сыграли какие-то другие факторы.
Если в будущем будут возможности для новых экспериментов (читай — подходящие сайты) — будут эксперименты.
это могло быть что-угодно, например, возраст сайта!Я удивлён, что это возражение не стояло первым в вашем списке. Обычно именно такие доводы приводятся в качестве отрицания seo-эксперимента. Так что ж — теперь вообще никаких экспериментов не проводить?
А вы успокойтесь, слюней не брызгайте, я не сеошник. Школу закончите, если в институт попадете, узнаете что такое эксперименты и как их правильно ставить.=) Ок, завтра учительницу по физике попрошу рассказать, как правильно проводить эксперименты)
Если это из-за постскриптума, то вам бы чувства юмора немного не помешало — там смайлик был и это, вроде как, шутка была такая =)
И ведь не имею ничего против вас, и даже попросил вас не обижаться, ибо это только для примера было сказано, но всё-равно — скатились до личных оскорблений. Ай-яй-яй)
p.s. и да, минус — не мой, если вы решите аппелировать к этому факту =)
Перечитал свою писанину — и правда местами грубовато вышло.
Если чем-то обидел — извините, не хотел.
Если чем-то обидел — извините, не хотел.
Этот заголовок нужен поисковым роботам, особенно гугловскому.
Дело в том, что поисковый робот при первом посещении страницы запоминает для себя дату последней модификации страницы (если, конечно такой заголовок есть).
В следующий раз, когда бот зайдёт на эту страницу для переиндексации, он сперва спросит наш сервер — изменилась ли страница с той самой даты, когда он был здесь последний раз? Тело страницы он не запрашивает, только заголовки. Если нет — он пойдёт гулять дальше. Если да — заново загрузит страницу, обновит свои данные о ней и отправит на анализ на гугловские сервера.
И вот здесь самая суть — при правильно настроенных заголовках это реальная экономия как трафика, так и нагрузки на сервера — как гугловские (не нужно повторно обрабатывать страницу и отправлять её на анализ, если она не изменилась), так и нашего сервера. А гугло-бот безумно прожорливый. Поэтому один маленький заголовок (на который никто никогда не обращает внимания) так сильно важен поисковым машинам. Ибо они реально экономят процессорное время и свои мощностЯ. Поэтому они так трепетно к нему относятся. Поэтому это может неплохо сказаться на дальнейшем ранжировании (правда, если сайт говно по остальным паре десятков параметров, то это не поможет).
Браузер может (на своё усмотрение) действовать абсолютно также, если у него в кэше полностью лежит эта страница.
Только будьте внимательны, проверяя из браузера — когда запущен DevTools или Firebug, браузер перестаёт посылать запрос If-Modified-Since для удобства разработки. Поэтому надо проверять через вот этот сервис, на который выше ссылался Илья.
Дело в том, что поисковый робот при первом посещении страницы запоминает для себя дату последней модификации страницы (если, конечно такой заголовок есть).
В следующий раз, когда бот зайдёт на эту страницу для переиндексации, он сперва спросит наш сервер — изменилась ли страница с той самой даты, когда он был здесь последний раз? Тело страницы он не запрашивает, только заголовки. Если нет — он пойдёт гулять дальше. Если да — заново загрузит страницу, обновит свои данные о ней и отправит на анализ на гугловские сервера.
И вот здесь самая суть — при правильно настроенных заголовках это реальная экономия как трафика, так и нагрузки на сервера — как гугловские (не нужно повторно обрабатывать страницу и отправлять её на анализ, если она не изменилась), так и нашего сервера. А гугло-бот безумно прожорливый. Поэтому один маленький заголовок (на который никто никогда не обращает внимания) так сильно важен поисковым машинам. Ибо они реально экономят процессорное время и свои мощностЯ. Поэтому они так трепетно к нему относятся. Поэтому это может неплохо сказаться на дальнейшем ранжировании (правда, если сайт говно по остальным паре десятков параметров, то это не поможет).
Браузер может (на своё усмотрение) действовать абсолютно также, если у него в кэше полностью лежит эта страница.
Только будьте внимательны, проверяя из браузера — когда запущен DevTools или Firebug, браузер перестаёт посылать запрос If-Modified-Since для удобства разработки. Поэтому надо проверять через вот этот сервис, на который выше ссылался Илья.
Выводить Last-Modified в MODX'е исходя из даты редактирования документа — абсолютно бесполезное и бессмысленное занятие.
Поэтому, держи — github.com/antixrist/lmims
Этому плагину абсолютно фиолетово какие сниппеты/чанки/etc. есть на странице — всё корректно отработается и корректно выведется.
Точных цифр по замеру не помню, но разница в скорости совершенно не существенная.
Только пакет надо собрать самостоятельно (хз, куда я собранный дел) — там всё прописанно, осталось только в корень сайта закинуть все папки из репозитория и из браузера запустить файл _build/lmims/build.transport.php
P.S. давно уж хотел выложить — да забыл про него совсем. Если SD выложит в репозиторий — будет супер =)
Поэтому, держи — github.com/antixrist/lmims
Этому плагину абсолютно фиолетово какие сниппеты/чанки/etc. есть на странице — всё корректно отработается и корректно выведется.
Точных цифр по замеру не помню, но разница в скорости совершенно не существенная.
Только пакет надо собрать самостоятельно (хз, куда я собранный дел) — там всё прописанно, осталось только в корень сайта закинуть все папки из репозитория и из браузера запустить файл _build/lmims/build.transport.php
P.S. давно уж хотел выложить — да забыл про него совсем. Если SD выложит в репозиторий — будет супер =)
Если SD выложит в репозиторий — будет супер =)Если пришлешь мне готовый пакет и напишешь что-то про него в репозиторий docs.modx.pro — конечно.
Алексей Карташов сделай! Очень надо, будь другом )))
Так я и не понял — он у тебя какую дату отдает? Что является признаком последней даты модификации?
При проверке через last-modified.com/ru/ я получаю ласт модифед тем же временем, что и проверка и время отстает на 4 часа (видимо, часовой пояс "+4" не подхватывает).
При проверке через last-modified.com/ru/ я получаю ласт модифед тем же временем, что и проверка и время отстает на 4 часа (видимо, часовой пояс "+4" не подхватывает).
У меня отдает время на четыре часа меньше. На бубунте время верное, модекс так же видит верную дату и время.
Здравствуйте Алексей!
Осенью установил с Гитхаба Ваш пакет.
Зависит это от пакета или нет не знаю, но перед Новым годом сайт полностью вылетел из выдачи Яндекса (даже главная страница). Санкции поисковика маловероятны, так как сайт продвигается только «белыми» методами. Предположил, что дело в настройках сайта. Отписал Платону, но вероятно из-за праздников ответ задерживается.
Стал искать источник проблемы, выяснил, только то, что Last-Modified отдает с ошибкой (сервис last-modified.com/ru/):
Last-Modified выдает 15 октября, а 304 Not Modified не отреагировал.
Пакет инсталировал/деинсталировал, но результат не изменился.
Может подскажите в какую сторону копать?
Осенью установил с Гитхаба Ваш пакет.
Зависит это от пакета или нет не знаю, но перед Новым годом сайт полностью вылетел из выдачи Яндекса (даже главная страница). Санкции поисковика маловероятны, так как сайт продвигается только «белыми» методами. Предположил, что дело в настройках сайта. Отписал Платону, но вероятно из-за праздников ответ задерживается.
Стал искать источник проблемы, выяснил, только то, что Last-Modified отдает с ошибкой (сервис last-modified.com/ru/):
Last-Modified выдает 15 октября, а 304 Not Modified не отреагировал.
Пакет инсталировал/деинсталировал, но результат не изменился.
Может подскажите в какую сторону копать?
Вот честно говоря, ни разу с таким поведением не сталкивался. И до этого подобных жалоб не было. Так что тут что-то уникальное исключительно для вашего сайта.
Логика отдачи заголовка проста как топор и нарушений в её работе добиться очень сложно. Может из-за nginx'а что-то.
Единственное, что могу посоветовать, — попробовать на другом хостинге протестировать (только аккуратно, чтобы поисковики не успели тестовый сайт проиндексировать), на каком-нибудь из рекомендуемых для modx. Если ошибка повторится, то дело в сайте, надо будет копать глубже.
А по поводу вылета из индекса…
С одной стороны не на столько это критичная ошибка и не на столько критичный фактор, чтобы весь сайт из индекса выкидывать.
С другой — этих роботов, порой, хер поймёшь. У АГС'а тоже есть статистический процент ошибок. Тут только ответа Платона ждать.
А в вебмастере смотрели? Там может быть что-то на эту тему, если есть проблемы с индексацией.
А на данный момент, просто выключите плагин. Если это мешало индексации, то пара хороших ссылок с твиттера и зайдёт обратно, никуда не денется. Но сперва дождитесь ответа Платона.
Логика отдачи заголовка проста как топор и нарушений в её работе добиться очень сложно. Может из-за nginx'а что-то.
Единственное, что могу посоветовать, — попробовать на другом хостинге протестировать (только аккуратно, чтобы поисковики не успели тестовый сайт проиндексировать), на каком-нибудь из рекомендуемых для modx. Если ошибка повторится, то дело в сайте, надо будет копать глубже.
А по поводу вылета из индекса…
С одной стороны не на столько это критичная ошибка и не на столько критичный фактор, чтобы весь сайт из индекса выкидывать.
С другой — этих роботов, порой, хер поймёшь. У АГС'а тоже есть статистический процент ошибок. Тут только ответа Платона ждать.
А в вебмастере смотрели? Там может быть что-то на эту тему, если есть проблемы с индексацией.
А на данный момент, просто выключите плагин. Если это мешало индексации, то пара хороших ссылок с твиттера и зайдёт обратно, никуда не денется. Но сперва дождитесь ответа Платона.
На другом хостинге попробую.
В вебмастере пишет «Страниц в поиске» — 0
«Последнее посещение роботом» — 04.01.2015
Плагин отключил.
Сайт всегда индексировался отлично — страницы влетали в поиск в течение нескольких минут.
Если проблема прояснится отпишусь…
В вебмастере пишет «Страниц в поиске» — 0
«Последнее посещение роботом» — 04.01.2015
Плагин отключил.
Сайт всегда индексировался отлично — страницы влетали в поиск в течение нескольких минут.
Если проблема прояснится отпишусь…
Ну, судя по всему, в созданном бекапе не экранированы какие-то спец.символы, которые в исходном html'е есть.
Надо переписывать, чтоб не голый html в базе хранить, а хэш.
Вам сейчас эта таблица и не нужна. Просто переустановите компонент на тестовом сайте и тестируйте
Надо переписывать, чтоб не голый html в базе хранить, а хэш.
Вам сейчас эта таблица и не нужна. Просто переустановите компонент на тестовом сайте и тестируйте
Надо переписывать, чтоб не голый html в базе хранить, а хэша это как?
Это мне переписывать)
А вам сейчас просто переустановить расширение на тестовом сайте :-)
А вам сейчас просто переустановить расширение на тестовом сайте :-)
в составе ключа $_SERVER['REQUEST_URI'] github.com/antixrist/lmims/blob/master/core/components/lmims/elements/plugins/plugin.lmims.php#L10 получается что для одной и той же страницы с разными параметрами запроса в url имеем множество 'modLMIMS'. Незнаю правильно это или нет с точки зрения сео, но для среднего сайта в итоге таблица lmims вырастает до очень приличных размеров…
Да, там надо переписать, чтобы не весь код в базе хранить, а только хеш от контента. И, соответственно, хэши и сравнивать. только у меня руки не доходят.
Здравствуйте. Очень интересно не доделали ли вы Ваш плагин?
Огромное спасибо. Буду пробовать!
Не за что)
Здравствуйте. По тестировал несколько дней. Проверяю вот этим сервисом last-modified.com/ru/ — проверку проходит на отлично, но есть одно НО. Дата и время в ласт-модифай стоит та, которая была на момент запроса этой страницы
Хотя страница не менялась какое-то время… так на каждой странице. Как я понимаю, там должна стоять дата последнего изменения этой страницы или нет?
А вот при проверки HTTP-заголовков с помощью плагина для фаер фокс, вообще дата Unix Timestamp
Может быть так и должно быть и я не правильно понял?
Хотя страница не менялась какое-то время… так на каждой странице. Как я понимаю, там должна стоять дата последнего изменения этой страницы или нет?
А вот при проверки HTTP-заголовков с помощью плагина для фаер фокс, вообще дата Unix Timestamp
Может быть так и должно быть и я не правильно понял?
Прошу прощение, на первом и втором скрине одна дата, не туда глянул вначале. В общем по идее же там должна быть дата, когда реально были изменения на странице?
А вот внутренние страницы сайта дают такую дату
А вот внутренние страницы сайта дают такую дату
Да, видимо какой-то глюк при генерации даты… Я давно уже не смотрел этот плагин. Попробуйте поставить lmims
Так это он и есть. Вы же выше мне дали ссылку на гихаб
В общем понаблюдал еще немного поведением плагина. На главной странице отдает 1970 год — если внести изменение в контент, то отдает настоящую дату сервера(на момент запроса страницы, то есть каждую секунду новое время), если изменения убрать, вернуть как было, то дата опять становится 1970 год, что очень странно. На внутренних страница при каждом запросе отдается время этого запроса, а не тогда когда реально была изменена страница. Очень и очень жалко, очнеь ценный плагин бы был, если бы работал корректно=(
В общем понаблюдал еще немного поведением плагина. На главной странице отдает 1970 год — если внести изменение в контент, то отдает настоящую дату сервера(на момент запроса страницы, то есть каждую секунду новое время), если изменения убрать, вернуть как было, то дата опять становится 1970 год, что очень странно. На внутренних страница при каждом запросе отдается время этого запроса, а не тогда когда реально была изменена страница. Очень и очень жалко, очнеь ценный плагин бы был, если бы работал корректно=(
Попробуйте в плагине на 17 строке заменить:
$date = time();
на:if($resource->editedon != 0){
$date = $resource->editedon;
} else {
$date = $resource->createdon;
}
Реально очень странные даты выдает
Ваше исправление не помогло похоже.
Ваше исправление не помогло похоже.
У Вас уже эта дата прописалась в таблицу плагина.
Откройте эту страницу в браузере и проверьте потом ответ сервера.
А лучше всего просто через phpMyAdmin очистить все записи в таблице modx_lmims и потом уже они сами туда добавятся по мере открывания страниц сайта.
Откройте эту страницу в браузере и проверьте потом ответ сервера.
А лучше всего просто через phpMyAdmin очистить все записи в таблице modx_lmims и потом уже они сами туда добавятся по мере открывания страниц сайта.
очистил таблицу, изменил ресурс. При первой загрузке дата вроде верная при второй опять
Last-Modified: Thu, 01 Jan 1970 00:33:36 GMT
иDate: Mon, 11 Jul 2016 11:50:04 GMT
Время запроса страницы.
А если эту страницу отредактировать и сохранить?
тоже самое, при первом запросе вроде нормально, потом опять 1970 год.
Проверил на нескольких сайтах и хостингах.
Действительно где-то работает нормально, где-то нет. Связано с тем, что чтение из базы в 53 строке не везде отдает дату в UNIX-формате.
В качестве костыля попробуйте заменить эту строку:
Действительно где-то работает нормально, где-то нет. Связано с тем, что чтение из базы в 53 строке не везде отдает дату в UNIX-формате.
В качестве костыля попробуйте заменить эту строку:
$lmimsDate = $lmims->get('date');
на эту:$lmimsDate = strtotime($lmims->get('date'));
Да это помогло, спасибо
Но вот вопрос
Красным выделено Почему Expires 1981 год?)
А синим это время запроса как я понял.
Но вот вопрос
Красным выделено Почему Expires 1981 год?)
А синим это время запроса как я понял.
Это дата рождения какого-то человека, правда не помню кого именно. Это нормально, поисковые боты это понимают
if($resource->editedon != 0){Так делать нежелательно. Туда будет прилетать дата, когда редактировали ресурс и на этом смысл плагина теряется. Ведь туда нада давать дату когда изменялся контент на странице. Допустим это категория, в ней вывод товаров, у товара, вложенного в эту категорию изменяется цена или краткое описания, контент категории изменился, хотя напрямую категорию не редактировали.
$date = $resource->editedon;
} else {
$date = $resource->createdon;
}
А вот это исправление помогло, спасибо!
$lmimsDate = strtotime($lmims->get('date'));
Теперь в дате не 1970 год, а время запроса страницы, что опять же не годится(то есть каждую секунду новое)… как бы реально туда запихнуть время когда контент был изменен…
у меня нормально стало после правки последней
$lmimsDate = strtotime($lmims->get('date'));
и да может кому надо чтоб не было 1981 года ставим
session.cache_limiter = public в php.ini
session.cache_limiter = public в php.ini
1981 год, это нормально. Вы пробовали запрашивать одну и туже страницу с периодичностью 10 секунд?
Хоть убей, у меня там постоянно новая дата — дата запроса, минус несколько часов, сервер стоит в другой стране
Хоть убей, у меня там постоянно новая дата — дата запроса, минус несколько часов, сервер стоит в другой стране
да пробовал. стоит дата последнего изменения. Так может у вас на странице изменения происходят, блоки динамические есть… типа новости и тд.
Нету. Это происходит на всех страницах сайта
А вы вносили изменения вот эти?
А вы вносили изменения вот эти?
if($resource->editedon != 0){
$date = $resource->editedon;
} else {
$date = $resource->createdon;
}
нет не вносил.
Я вот что заметил
Разная дата Last-Modified в двух колонках
Я вот что заметил
Разная дата Last-Modified в двух колонках
Там не должно быть заголовка Last-Modifled
А вот Expires не правильный, лучше оставить его 81 годом, который прекрасно понимают роботы. А у вас роботу дают понять, что завтра документ теряет актуальность, он его может проигнорироват
А вот Expires не правильный, лучше оставить его 81 годом, который прекрасно понимают роботы. А у вас роботу дают понять, что завтра документ теряет актуальность, он его может проигнорироват
Привет!
Мне тоже не помогли предложенные изменения. А у вас уже заработало?
Мне тоже не помогли предложенные изменения. А у вас уже заработало?
Алексей, спасибо за пакет для modx.
Есть вопрос, у меня дата изменения отображается такая:
Last-Modified: Thu, 01 Jan 1970 00:33:36 GMT
я внес специально несколько изменений на страницу, но эта дата так и не меняется.
Что я делаю не так?
если поможет сайт: elevator-spb.ru
Есть вопрос, у меня дата изменения отображается такая:
Last-Modified: Thu, 01 Jan 1970 00:33:36 GMT
я внес специально несколько изменений на страницу, но эта дата так и не меняется.
Что я делаю не так?
если поможет сайт: elevator-spb.ru
Все заработало после изменений из треда выше.
Моё мнение, что такие вещи должны настраиваться на стороне сервера
А можете подсказать, как это сделать на стороне сервера правильно?
Небольшая сводка информации по работе lmims:
1. Дополнение работает с https, а вот представленный здесь сервис проверки last-modified.com/ru/ — нет. (рабочая альтернатива)
2. Дополнение перестает отдавать актуальную информацию, если на сайте используется MinifyX или любые сниппеты, возвращающие случайные переменные, как то:
— плейсхолдеры вида [^t^]
— любые функции рандома
— капча
— …
Способ решения проблемы:
— Заключаем актуальную информацию (без перечисленных элементов из пункта 2) в тег main:
— В плагине lmims заменяем строку
3. Вероятно, у плагина есть проблемы с возвращением результата при 404/403 ошибки.
1. Дополнение работает с https, а вот представленный здесь сервис проверки last-modified.com/ru/ — нет. (рабочая альтернатива)
2. Дополнение перестает отдавать актуальную информацию, если на сайте используется MinifyX или любые сниппеты, возвращающие случайные переменные, как то:
— плейсхолдеры вида [^t^]
— любые функции рандома
— капча
— …
Способ решения проблемы:
— Заключаем актуальную информацию (без перечисленных элементов из пункта 2) в тег main:
<main role="main"></main>
— В плагине lmims заменяем строку
$hash = sha1($html);
на строку:preg_match("'<main role=\"main\">(.*?)</main>'si", $html, $html_clear);
if (strlen($html_clear[1]) > 0) {
$hash = sha1($html_clear[1]);
}
else {
$hash = sha1($html);
}
3. Вероятно, у плагина есть проблемы с возвращением результата при 404/403 ошибки.
Лично я взял исходники из первого варианта, второй не попадался на глаза. На первый взгляд выглядят одинаково, разве что табуляцией строк отличаются..)
Спросил Володю в скайпе, он предложил попробовать его lastModified
В его репозитарии rstore.pro/extras/
Я установил себе, проверяю этим сервисом redbot.org
Попробуй.
В его репозитарии rstore.pro/extras/
Я установил себе, проверяю этим сервисом redbot.org
Попробуй.
Попробовал. Last-Modified возвращает не время последней модификации ресурса, а время сервера (попробуй пообновлять запросы через сервис проверки).
Да, плюс "… отдала время последней модификации, но не отреагировала на If-Modified-Since."
сформулируйте чего не хватает, время будет поправлю. Спасибо!
Спасибо! Сформулирую в ближайшее время.
Скажите, пакет нужно просто установить и можно проверять или необходимы какие-то настройки дополнительно?
просто установить
UPD: также в дополнении выводятся форматы дат в разном виде (для свежесозданных документов — в timestamp, для уже созданных в формате даты), из-за чего в одном из случаев дата возвращается в виде 1970 года.
Решение:
— перед строкой
-добавить:
Решение:
— перед строкой
$LastModified = gmdate("D, d M Y H:i:s \G\M\T", $lmimsDate);
-добавить:
if (!is_numeric($lmimsDate)) {
$lmimsDate = strtotime($lmimsDate);
}
Замена строки
Это
Это у всех так или только у меня? На сайте используется https, проверяю заголовки тут и тут.
$lmimsDate = $lmims->get('date');
на строку$lmimsDate = strtotime($lmims->get('date'));
не дала результата.Это
if (!is_numeric($lmimsDate)) {
$lmimsDate = strtotime($lmimsDate);
}
я так понимаю, то же самое и это тоже не работает. Дата всё равно такая:Last-Modified: Thu, 01 Jan 1970 00:33:37 GMT
При изменении ресурса или шаблона заголовок всегда один: HTTP/1.1 304 Not ModifiedЭто у всех так или только у меня? На сайте используется https, проверяю заголовки тут и тут.
Не понял почему так, но простое внесение изменений в файл plugin.lmims.php не даёт результата, так как в кэше файл всё равно старый, как не обновляй кэш.
Помогло пересобирание транспортного пакета. Инструкция тут. Только предварительно нужно в файле /lmims/_build/build.config.php заменить все connectors-7rXt-B1s на connectors (а то пакет не собирётся) и заменить $lmimsDate = $lmims->get('date'); на $lmimsDate = strtotime($lmims->get('date')); в файле /lmims/core/components/lmims/elements/plugins/plugin.lmims.php
Помогло пересобирание транспортного пакета. Инструкция тут. Только предварительно нужно в файле /lmims/_build/build.config.php заменить все connectors-7rXt-B1s на connectors (а то пакет не собирётся) и заменить $lmimsDate = $lmims->get('date'); на $lmimsDate = strtotime($lmims->get('date')); в файле /lmims/core/components/lmims/elements/plugins/plugin.lmims.php
После установки компонента «looked» в ответе сервера пропала строчка Last-Modified и ответ 304 Not Modified. После деинсталяции «looked» Last-Modified и 304 Not Modified так и не появились. До этого 2 дня всё было нормально.
Кто-нибудь сталкивался с подобным?
Кто-нибудь сталкивался с подобным?
Извиняюсь, это я туплю. «looked» здесь не при чём. Просто после сбора пакета через 2 дня удалил в корневой папке сайта папку с компонентом. А этого делать нельзя. Либо удалить можно, но в БД исправить одну строчку с адресом плагина на правильный. В общем кто в курсе, всё это знают)
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.