Apache: установка заголовков ответа на основе существования нескольких заголовков ответа
Мы пытаемся применить набор некэшируемых заголовков в тех случаях, когда обратный прокси-сервер не возвращает никаких заголовков кеша, чтобы позволить независимым разработчикам серверной части устанавливать заголовки по своему усмотрению, но вернуться к безопасному варианту. Однако мои попытки пока не увенчались успехом, поэтому я спрашиваю, достиг ли это кто-то еще или видит ошибку в моей нынешней попытке?
эффективная реализация псевдокода
if (neither Cache-Control nor Expires is set) {
set safe default for Cache-Control and Expires
}
Поскольку два или более заголовков необходимо рассматривать как группу,
Вместо этого я придумал следующее, которое нужно применить после проксирования запроса и получения ответа от проксируемой системы.
SetEnvIfExpr "-n resp('Cache-Control') || -n resp('Expires')" response_has_cache_headers
Header set Cache-Control "private, max-age=0, no-cache" env=!response_has_cache_headers
Header set Expires "Thu, 01 Jan 1970 00:00:00 GMT" env=!response_has_cache_headers
Однако SetEnvIfExpr всегда дает значение false, независимо от значения заголовков ответа, отправленных из прокси-серверной системы.
Мы используем последнюю версию Apache 2.4, mod_setenvif и mod_headers включены.