Я пытаюсь установить заголовок запроса для всех запросов, проходящих через Apache HTTPD. Значение необходимо взять из файла cookie, прикрепленного к запросу. Из документов Apache это выглядит как mod_headers может работать.
Из примера на этой странице я собрал это:
RequestHeader set MyHeaderName "expr=%{req:access_token}"
где «access_token» - это имя значения cookie. Это устанавливает заголовок, но значение приходит пустым, поэтому я не думаю, что это выражение правильное.
Есть ли выражение, которое я могу использовать для получения значения cookie?
я думаю expr=%{req:access_token}
не получит значение файла cookie, а только заголовок с тем же именем, что и ваш файл cookie. Вам, наверное, стоит попробовать что-нибудь придумать из expr=%{HTTP_COOKIE}
и извлечение определенного значения cookie с помощью регулярного выражения. Возможно, это сработает (но я не уверен, что обратная ссылка регулярного выражения может использоваться в качестве значения заголовка):
RequestHeader set MyHeaderName $2 "expr=%{HTTP_COOKIE} =~ /(^|;\ *)access_token=([^;\ ]+)/
или это (сначала установите заголовок, а затем отредактируйте его):
RequestHeader set MyHeaderName "%{HTTP_COOKIE}" "expr=%{HTTP_COOKIE} =~ /(^|;\ *)access_token=([^;\ ]+)/
RequestHeader edit MyHeaderName "(^|;\ *)access_token=([^;\ ]+)" "$2"
Если это не сработает, вам может потребоваться добавить mod_env для этого может быть что-то вроде этого:
SetEnvIf Cookie "(^|;\ *)access_token=([^;\ ]+)" MyCookieValue=$2
RequestHeader set MyHeaderName "%{MyCookieValue}e"
См. Также аналогичный вопрос о SO: https://stackoverflow.com/questions/22645118/using-mod-header-to-change-cookie-domains