Подтвердить что ты не робот

Nginx request_uri без аргументов

Как получить значение request_uri без добавления аргументов в конец. Я знаю, что существует переменная uri, но мне нужно исходное значение, как указано в документации Nginx:

REQUEST_URI

Эта переменная равна исходному URI запроса, полученному от клиент, включая args. Его нельзя изменить. Посмотрите на $uri для после переписывания/изменения URI. Не включает имя хоста. Пример: "/foo/bar.php?arg=baz"

4b9b3361

Ответ 1

Вы ищете $uri. У него нет $args. Фактически, $request_uri почти эквивалентен $uri $args.

Если вы действительно хотите точно $request_uri с разделенными аргументами, вы можете сделать это.

local uri = string.gsub(ngx.var.request_uri, "?.*", "")

Вам нужно будет иметь lua, но это будет делать именно то, что вы просите.

Ответ 2

Я использую эту карту, которая работает без lua:

map $request_uri $request_uri_path {
  "~^(?P<path>[^?]*)(\?.*)?$"  $path;
}