Nginx request_uri без аргументов
Как получить значение request_uri
без добавления аргументов в конец. Я знаю, что существует переменная uri
, но мне нужно исходное значение, как указано в документации Nginx:
REQUEST_URI
Эта переменная равна исходному URI запроса, полученному от клиент, включая args. Его нельзя изменить. Посмотрите на $uri для после переписывания/изменения URI. Не включает имя хоста. Пример: "/foo/bar.php?arg=baz"
Ответы
Ответ 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;
}