Назад | Перейти на главную страницу

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

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

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

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

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