Ответ 1
Директива Header edit
запускается до того, как ваше приложение выдает ответ, поэтому, если приложение создает заголовок, который вы хотите отредактировать, этот заголовок еще не будет существовать во время выполнения директивы, и ничего не будет для это для редактирования.
Вы можете исправить это, используя Header always edit
(который запускается после того, как ваше приложение производит ответ):
Header always edit Set-Cookie (.*) "$1; HTTPOnly"
Пример заголовка перед применением директивы:
Set-Cookie: foo=bar; domain=.example.com; path=/
Тот же заголовок после применения директивы:
Set-Cookie: foo=bar; domain=.example.com; path=/; HTTPOnly
Я не уверен, какие директивы в вашем вопросе предназначены именно для этого; то, что они на самом деле приводят к изменению в Header always edit
(при условии, что тот же заголовок Set-Cookie
, как в моем примере выше), например,
Set-Cookie: f ;HTTPOnlyo=bar; domain=.example.com; path=/
Если вы понимаете, как работают регулярные выражения и обратные ссылки, очевидно, что происходит там, но, по-видимому, это не то, что вы хотите. Директива, которую я дал в начале этого ответа, должна работать для вас, если, как вы говорите, вы хотите добавить флаг в каждый заголовок Set-Cookie
; если ваши потребности более сложны, и я неправильно понял, что вы пытаетесь сделать с этим поиском/заменой, сообщите мне.
EDIT: Если это не очевидно: для добавления обоих флагов вы можете либо изменить директиву так:
Header always edit Set-Cookie (.*) "$1; HTTPOnly; Secure"
... или используйте две директивы:
Header always edit Set-Cookie (.*) "$1; HTTPOnly"
Header always edit Set-Cookie (.*) "$1; Secure"
Первый подход кажется мне более разумным, но это в значительной степени зависит от вкуса.