Ответ 1
Таким образом, это выглядит... Синтаксис файла .htaccess:
Header unset Last-Modified
FileETag none
ExpiresActive On
ExpiresDefault "access plus 1 years"
Это отключит Etags и включит кеш-контроль: max-age
Затем поместите этот файл .htaccess в каталог и все файлы (включая его подкаталоги будут кэшироваться в течение 1 года.
Я решил поместить весь свой файл, пригодный для кэширования, в один корневой каталог и отредактировать httpd.conf
как
<Directory "C:\somedir\cache">
Header unset Last-Modified
FileETag none
ExpiresActive On
ExpiresDefault "access plus 1 years"
</Directory>
Я все еще в процессе тестирования. Я просто надеюсь, что это не отключит Etags для остальной части сайта. Пока это выглядит так, как будто это работает как запланировано.
ОБНОВЛЕНИЕ (через 6 месяцев):
Настройка ExpiresDefault и использование электронных тегов - лучшее, что нужно сделать.
в httpd.conf:
<Directory "C:\somedir\cache">
ExpiresActive On
ExpiresDefault "access plus 1 year"
</Directory>
Убедитесь, что "somedir" находится внутри корня apache (например, htdocs).
Разрешать электронные теги - это хорошо, потому что через 1 год браузер повторно проверит файл, передав e-tag. Веб-сервер отправит 304 - Not Modified и reset максимальный возраст до 1 года. Это очень эффективно.
В общем, вы можете посмотреть файл журнала apache и увидеть, что элементы в /cache dir начинаются один раз.
Примечание. Я обнаружил, что настройка Header append Cache-Control "public"
в порядке, если вы хотите.
Окончательная версия:
Здесь окончательная версия: (просто добавьте это в нижней части httd.conf)
<Directory "C:\somedir\cache"">
ExpiresActive On
ExpiresDefault "access plus 1 year"
Header append Cache-Control "public"
</Directory>
Проверка заголовка должна показать это:
Accept-Ranges:bytes
Cache-Control:max-age=31536000, public
Connection:Keep-Alive
Content-Language:en
Content-Length:746
Content-Type:text/css
Date:Thu, 29 May 2014 15:23:50 GMT
ETag:"240000000add63-2ea-4f4086d72ad01"
Expires:Fri, 29 May 2015 15:23:50 GMT
Keep-Alive:timeout=40, max=200
Last-Modified:Fri, 07 Mar 2014 18:28:59 GMT
Это будет:
- Установите максимальный возраст в течение 1 года (наиболее рекомендуемый)
- Отправить тег expires 1 год
- Отправьте Etag, поэтому через 1 год браузер выполнит проверку etag
- Пусть промежуточные устройства/службы кэширования знают, что они могут кэшировать файл в течение 1 года.