@Serdonda

Как поставить cookies с помощью nginx для каталогов?

Добрый день. Подскажите, пожалуйста, такой вопрос:
нужно при переходе по ссылке с параметрами вида site.com/index.html?tracker=123 в куки записывать значение параметра
Конфиг nginx примерно такой:

location / {
root /var/site;
index index.html;
}
location ~ \.html$ {
root /var/site;
index index.html;
if ($arg_tracker) { add_header Set-Cookie "tracker=$arg_tracker;Max-Age=50"; }
}

Все хорошо работает для корневого каталога, но как только ссылка становится вида
site.com/category/index.html?tracker=123 куки не пишется.
Перенос добавления куки в location / тоже ничего не дает.

Подскажите что не так?

UPD: акцентирую внимание "перенесите свой if в корень" НЕ работает

Решение:
location ~ \.html {
if ($arg_tracker) { add_header Set-Cookie "tracker=$arg_tracker;Path=/;Max-Age=50"; }
}
  • Вопрос задан
  • 6931 просмотр
Решения вопроса 1
POS_troi
@POS_troi
СадоМазо Админ, флудер, троль.
А в чём собсно проблема?
У вас бывают ссылки site.com/category/?tracker=123
перенесите свой if в корень, или я чего-то не понял.
location / {
root /var/site;
index index.html;
if ($arg_tracker) { add_header Set-Cookie "tracker=$arg_tracker;Max-Age=50"; }
}


или так то-же поидее должно работать :)
location / {
  root /var/site;
  index index.html;
  if ($args ~ "^tracker=(\d+)") { 
    set $key_track $1;
    add_header Set-Cookie "tracker=$key_track;Max-Age=50";
  }
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы