Last-modify + SSI + XBitHack и другие гномы
Категория: / DEV Блог
/ Сервер (FreeBSD)
Сервер не отдает last-modify для простых html файлов?
Синопсис
Так как на сервере включен ssi для html, то хедер не посылается.
На помощь наи приходит xbithack:) с умопомрачительным переводом:
Добавляем в includes/ файлик
Собственно нужна только первая строка, остальные только докучи..
Теперь нам необходимо поставить execute права для файлов .html
чтобы сервер отдавал нужный заголовок!
Диагноз
Устанавливаем всем файлам в текущей директории нужные права
Синопсис
[root@host /www/]# curl -I http://host.ru/
HTTP/1.1 200 OK
Date: Wed, 07 Nov 2007 10:09:00 GMT
Server: Apache
Accept-Ranges: bytes
Content-Length: 3572
Content-Type: text/html
Так как на сервере включен ssi для html, то хедер не посылается.
На помощь наи приходит xbithack:) с умопомрачительным переводом:
Description: директивы ПЕРВОЙ СТЕПЕНИ ИНТЕГРАЦИИ разбора в файлах с выполняющимся набором бита
Syntax: XBitHack on|off|full
что касается on но также и тест выполняющийся группой бит. Если это установлено, то устанавливают Last-modified дата возвращенного файла, чтобы быть в прошлый измененный раз файла. Если это не установлено, то никакую последнее-измененную дату не посылают. Урегулирование этого бита позволяет клиентам и полномочиям прятать результат про запас запроса.
Добавляем в includes/ файлик
# xbit!
XBitHack full
# 480 недель
<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$">
Header set Cache-Control "max-age=290304000, public"
</FilesMatch>
# 2 дня
<FilesMatch "\.(xml|txt)$">
Header set Cache-Control "max-age=172800, public, must-revalidate"
</FilesMatch>
# 2 часа
<FilesMatch "\.(html|htm)$">
Header set Cache-Control "max-age=7200, must-revalidate"
</FilesMatch>
Собственно нужна только первая строка, остальные только докучи..
Теперь нам необходимо поставить execute права для файлов .html
чтобы сервер отдавал нужный заголовок!
Диагноз
[root@host /www/]# curl -I http://host.ru/
HTTP/1.1 200 OK
Date: Wed, 07 Nov 2007 10:09:00 GMT
Server: Apache
Last-Modified: Wed, 07 Nov 2007 07:47:02 GMT
Accept-Ranges: bytes
Cache-Control: max-age=7200, must-revalidate
Content-Length: 3572
Content-Type: text/html
Устанавливаем всем файлам в текущей директории нужные права
find ./ -name '*.html' -type f -exec chmod 750 {} \;