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

Скопировать cookie в заголовок запроса в Apache HTTPD

Я пытаюсь установить заголовок запроса для всех запросов, проходящих через 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