Добавьте заголовок в зависимости от проксированного кода ответа с Apache

Добавьте заголовок в зависимости от проксированного кода ответа с Apache

Я использую 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):

  1. Добавьте заголовок кэширования для ответов с кодом статуса HTTP 200:
    Header append Cache-Control s-maxage=600 "expr=%{REQUEST_STATUS} == 200"

Его можно расширить для поддержки любого условия на основе переменных среды запроса/ответа.

Этот пример работает для Apache httpd v2.4: Я подозреваю, что он не работает для httpd v2.2...

Связанный контент