Главная > SEO > If-Modified-Since и If-None-Match, если PHP не установлен как модуль Apache

If-Modified-Since и If-None-Match, если PHP не установлен как модуль Apache

If-Modified-Since и If-None-Match, если PHP не установлен как модуль Apache

Многие разработчики (веб программисты), кто начинает "общаться" с кэшированием веб страниц на стороне клиента, знает о таких вещах (заголовках HTTP) как «If-Modified-Since» и «If-None-Match». Эти заголовки отдаются браузером при обращении к странице, которые лежат в его кэше. Для того, чтобы правильно сделал кеширование на стороне клиента, серверной части необходимо отправить заголовок "HTTP/1.0 304 Not Modified" и остановить передачу данных если содержимое запрошеной страницы не менялось с того времени, которое указано в присланном заголовке "If-Modified-Since". Основная проблема кэширования на стороне клиента, заключается в получение содержимого заголовка "If-Modified-Since". Проблема заключается в том, что по дефолту указанный заголовок доступен из серверного приложения только в том случае, если интерпретатор PHP установлен в качестве модуля Apache, а это бывает редко на хостинг площадках, из-за соображений безопасности и удобства компиляции PHP. Но т.к. кеширование благотворно влияет как на нагрузку сервера так и на отдачу страницы клиенту и на скорость индексации, нужно в любом случае ее реализовать. Для этого есть универсальные методы, и не важно как установлен PHP. И так... В файл .htaccess записать несколько строчек: RewriteEngine On RewriteRule .* - [E=HTTP_IF_MODIFIED_SINCE:%{HTTP:If-Modified-Since}] RewriteRule .* - [E=HTTP_IF_NONE_MATCH:%{HTTP:If-None-Match}] Тогда, мы получим возможность использовать значения из заголовков по средствам массива SERVER, а именно $_SERVER['HTTP_IF_MODIFIED_SINCE'] и $_SERVER['HTTP_IF_NONE_MATCH']. Если же, htaccess используется для ЧПУ (к примеру): RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php [QSA] То вариант будет вот таким: RewriteRule .* - [E=HTTP_IF_MODIFIED_SINCE:%{HTTP:If-Modified-Since}] RewriteRule .* - [E=HTTP_IF_NONE_MATCH:%{HTTP:If-None-Match}] Так же, если используются работа с сессиями, то при их старте нужно прописать session_cache_limiter('private_no_expire'); а потом уже стартовать сессии session_start();
1 звезда2 звезды3 звезды4 звезды5 звезд (Рейтинг отсутствует)

Loading...Loading...
  1. Пока что нет комментариев.
  1. Пока что нет уведомлений.

Current month ye@r day *


семь + = 9

Heads up! You are attempting to upload an invalid image. If saved, this image will not display with your comment.