Перейти к содержимому


Конкурс "Лучший отзовик"
× Быстрый вопрос
Пользователь месяца
ShowPrint ShowPrint 1-й за Март
Очков активности: 1 152 1 тема, 61 сообщение, 12 баллов репутации
Сайт: ShowPrint.ru
ТОП самых активных за этот месяц
  • Фотография Андрей WPMasterKZ
    #1

    Андрей WPMasterKZ (wpmaster.kz)
    Очков активности: 555 Вне конкурса за определение пользователя месяца

  • Фотография Vmir
    #2

    Vmir
    Очков активности: 420 3 темы, 26 сообщений, 8 баллов репутации

  • Фотография OlgaGetman
    #3

    OlgaGetman
    Очков активности: 360 Вне конкурса за определение пользователя месяца

  • Фотография ShowPrint
    #4

    ShowPrint (ShowPrint.ru)
    Очков активности: 204 Вне конкурса за определение пользователя месяца

  • Фотография Mandarin
    #5

    Mandarin
    Очков активности: 103.5 3 темы, 14 сообщений, 3 балла репутации

  • Фотография maxnik
    #6

    maxnik (konovalovpavel.ru)
    Очков активности: 66 1 тема, 19 сообщений, 2 балла репутации

  • Фотография re-search
    #7

    re-search
    Очков активности: 49.5 7 тем, 12 сообщений, 1 балл репутации

  • Фотография Megoydagi
    #8

    Megoydagi
    Очков активности: 39 1 тема, 10 сообщений, 2 балла репутации

  • Фотография Strazh
    #9

    Strazh
    Очков активности: 37.5 1 тема, 22 сообщения, 1 балл репутации

  • Фотография pozitron123
    #10

    pozitron123
    Очков активности: 36 2 темы, 6 сообщений, 2 балла репутации

  • Показать весь ТОП 10
Поддержите форум! =)
Апдейты
  • Яндекс ИКС: 20.04.2019
  • Яндекс выдача: 18.04.2019
Топ 5 участников по репутации


Правильный заголовок Last-Modified

#1 sergei299

sergei299
  • Неактивные
  • 2 сообщений
  • Репутация: 1
1

Отправлено 21 Июнь 2013 - 10:47

(Конкурсная тема, конкурс "Web-ошибки")

Свой первый сайт я сделал самописный на инклюдах и прочитав советы Яндеса:

Следите, чтобы все нужные страницы сайта отдавали код 200 OK.
Следите за корректностью http-заголовков. В частности, важно, содержание ответа, который сервер отдает на запрос «if-modified-since». Заголовок Last-Modified должен отдавать корректную дату последнего изменения документа.

долгое время искал способ решения этой проблемы.

Реализовать все это получилось вставив этот код <!--?php include $_SERVER['DOCUMENT_ROOT'].'/is-modified.php' ; ?--> перед тегом на каждой странице и закинув на сайта файл is-modified.php со следующим содержимым
<!--?php
$failo=substr($SERVER_NAME.$SCRIPT_FILENAME,strlen($SERVER_NAME));
$LastModified_unix=filemtime($failo);
$LastModified = gmdate('D, d M Y H:i:s',filemtime(substr($SERVER_NAME.$SCRIPT_FILENAME,strlen($SERVER_NAME)))).' GMT';
$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);
//компрессия на сервере
ob_start("ob_gzhandler");
?>

Для сайтов на Вордпресс я делаю это при помощи плагина wp-super-cache поставив галочку в настройках возле пункта Ошибка 304

Думаю данная информация может пригодится начинающим Вебмастерам

При поддержке: Fozzy - эксклюзивный спонсор конкурса на Masterwebs. На хостинге Fozzy ваш сайт будет работать до 3-х раз быстрее, а отзывчивая поддержка поможет в любой трудной ситуации. Попробуйте быстрый хостинг Fozzy бесплатно в течение 7 дней!
Изображение

 

 

  • 1

#2 fedornabilkin

fedornabilkin
  • Модератор
  • 1 152 сообщений
  • Репутация: 197

Отправлено 21 Июнь 2013 - 16:02

Я как-то тоже задавался этим вопросом, все вроде сделал, но не учел кое-чего.
Когда пользователь запрашивает страницу, я брал значения из БД, сверял и все вроде ок, но загвоздка в авторизации.
Если пользователь впервые зашел на страницу без авторизации, то браузер закеширует форму логин/пасс, а пользователь потом авторизуется, зайдет на страницу, а ему браузер из кэша с формой авторизации.
Как быть не знаю.
  • 0

Надо обсудить предложение. А тут знакосчиталка считает знаки. Про Yii2 написано.



#3 Sergey_on

Sergey_on
  • Неактивные
  • 8 сообщений
  • Репутация: 3

Отправлено 02 Июль 2013 - 18:37

$LastModified_unix=filemtime($failo);
$LastModified = gmdate('D, d M Y H:i:s',filemtime(substr($SERVER_NAME.$SCRIPT_FILENAME,strlen($SERVER_NAME)))).' GMT';


А я в одной из своих недавних статей как раз писал о том, что не рекомендую использовать время последнего изменения файла для указания даты последнего изменения страницы, так как многие хостинг провайдеры не выдают корректное время изменения файла, а потому к нему лучше не привязываться. Кстати, вот моя статья об этом: заголовки Last-Modified и if-modified-since.
  • 0



Похожие темы

  Название темы Автор Статистика Последнее сообщение

Оформление форума – IPBSkins.ru