Трудно подвести итог в заголовке ... Я пытаюсь создать URL, который сохранит указанное значение в cookie, а затем перенаправит пользователя, чтобы избавиться от значения в URL.
Желания:
domain.com / конц.php (не изменяйте cookie!) Этот файл не важен, но было бы неплохо
domain.com / конц.php
То, что я сейчас написал:
location ~ ^/importantpage/?(.*?)$ {
add_header Set-Cookie "secret_code=$1;Domain=$server_name;Path=/;Max-Age=31536000;Secure;HTTPOnly" always;
return 307 $scheme://$server_name/importantpage.php;
}
Этого недостаточно, потому что domain.com/importantpage (с косой чертой или без нее) устанавливает для куки значение BLANK.Я хочу, чтобы пользователи могли переходить по адресу domain.com/importantpage и читать его, если он был предоставлен.
Я думал о том, чтобы разбить его в двух местах, например:
location ~ ^/importantpage$ {
return 307 $scheme://$server_name/importantpage.php;
}
location ~ ^/importantpage/(.*?)$ {
add_header Set-Cookie "secret_code=$1;Domain=$server_name;Path=/;Max-Age=31536000;Secure;HTTPOnly" always;
return 307 $scheme://$server_name/importantpage.php;
}
Но по некоторым причинам, в которых я не уверен ... это не работает так, как я себе представляю.Теоретически, верхний должен вызываться только domain.com/importantpage и избегать установки cookie ... но если / предоставляется (со значением или без него), второй должен вызываться ... но вместо этого, когда яперейдите на domain.com/importantpage, это все еще устанавливает cookie с пустым значением ??Хотя второй ТРЕБУЕТ косой черты, чтобы соответствовать ему?Может быть, что-то неочевидное происходит за кулисами.
У кого-нибудь есть идеи?Возможно, есть способ заставить регулярное выражение соответствовать 1 или более непробельным символам, или оператор IF для вызова setcookie, только если значение не пустое?