Я использую Apache 2.2 с mod_proxy на какой-то сторонний HTTP-сервер.
Поскольку он не отправляет Cache-Control
заголовок, я хочу добавить один день для кода ответа 200, 5 минут для 404 и 0 для любого другого кода ответа.
Итак, я бы хотел что-то вроде:
SetEnvIf HttpResponseCode "200" rc_200
SetEnvIf HttpResponseCode "404" rc_404
Header set "Cache-Control" "private, max-age=0"
Header set "Cache-Control" "public, max-age=86400" env=rc_404
Header set "Cache-Control" "public, max-age=86400" env=rc_200
Я знаю, что мой ответ, вероятно, придет слишком поздно, но он может быть полезен всем, кто хочет установить заголовок в HTTP-ответе на основе условия, а точнее условия в коде состояния HTTP.
Ты можешь найти Вот пример такой конфигурации (пример №8):
- Добавьте заголовок Caching для ответов с кодом состояния HTTP 200:
Header append Cache-Control s-maxage=600 "expr=%{REQUEST_STATUS} == 200"
Его можно расширить для поддержки любых условий, основанных на переменных среды запроса / ответа.
Этот пример работает для Apache httpd v2.4: я подозреваю, что он не работает для httpd v2.2 ...