
Я использую Apache 2.2 сmod_proxyна какой-либо сторонний HTTP-сервер.
Поскольку он не отправляет никаких Cache-Control
заголовков, я хочу добавить один из следующих значений: 1 день для кода ответа 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
решение1
Я знаю, что мой ответ, вероятно, запоздал, но он может быть полезен тем, кто хочет задать заголовок в HTTP-ответе на основе условия, а точнее, на основе условия в коде статуса HTTP.
Ты можешь найтиздесьпример такой конфигурации (пример №8):
- Добавьте заголовок кэширования для ответов с кодом статуса HTTP 200:
Header append Cache-Control s-maxage=600 "expr=%{REQUEST_STATUS} == 200"
Его можно расширить для поддержки любого условия на основе переменных среды запроса/ответа.
Этот пример работает для Apache httpd v2.4: Я подозреваю, что он не работает для httpd v2.2...