Как извлечь параметр запроса из $ request? - PullRequest
0 голосов
/ 10 июня 2019

Я хочу извлечь значение параметра запроса (reqId) из $ request в блоке http, используя regex и map Не могли бы вы помочь мне решить его?

Пример URL:

test-registration.com/emp/reg?reqId=939393&usrName=Jimmy

Я не уверен, что было бы регулярным выражением в этом случае, но возможное решение будет похоже на

http {
    map $request $requestId {
      "regular expression"  $reqId;
    }
}

Если есть какое-либо другое решение для решения этой проблемы, пожалуйста, дайте мне знать.Я думал, что смогу использовать $ arg_reqId, но я не уверен, смогу ли я использовать его в блоке http или нет.

РЕДАКТИРОВАНИЕ: После извлечения идентификатора я хочу применить к нему хэширование sha-256 и вернуть его в$ запрос.Таким образом, новое значение $ request должно выглядеть следующим образом:

test-registration.com / emp / reg? ReqId = $ # & $ # & yewywjd3 & usrName = Jimmy

Спасибо

Ответы [ 2 ]

0 голосов
/ 10 июня 2019

А как насчет этого блока карты:

http {
    map $request $requestId {
      "~/emp/reg\?reqId=(?<reqId>[0-9]+)"  /doSomething/$reqId;
    }
}
0 голосов
/ 10 июня 2019

Вы можете попробовать этот шаблон: reqId=([^&]+)

Пояснение:

reqId= - соответствует reqId= буквально

(...) - группа захвата

[^&]+ - соответствует одному или нескольким символам, отличным от &

Обязательное значение будет сохранено в первой группе захвата.

Демо

...