nginx: regex, не соответствующий URI

у меня есть этот URI /orls/myservice/f?p=4550 и следующее местоположение

location ~ "^/(.+)/myservice/f?p=(.+)$" {
 .....
}

nginx возвращает 404, не найденные. проблема могла бы возникнуть из? таким образом, я попробовал \? buit я все еще получаю ту же ошибку. Кто-либо может помочь?

0
задан 8 April 2015 в 18:08
3 ответа

Попробуйте также экранировать символ /

http://regexr.com/3apga

0
ответ дан 4 December 2019 в 16:59

Вам нужно избегать косой черты и вопросительного знака, например:

location ~ "^\/(.+)\/myservice\/f\?p=(.+)$" {
 .....
}

Это будет соответствовать первой папке и аргументу p.

1 = orls
2 = 4550
0
ответ дан 4 December 2019 в 16:59

Совпадение местоположения не учитывает строку запроса:

Note that locations of all types test only a URI part of request line 
without arguments. This is done because arguments in the query string 
may be given in several ways [...]

http://nginx.org/en/docs/http/request_processing.html

1
ответ дан 4 December 2019 в 16:59

Теги

Похожие вопросы