Для начала - query string не проверяется при поиске location
Надо делать именованный, проверять аргумент в if и переходить в
именованный. В этом виде if - не evil
On Wednesday, April 1, 2015, s.ivanov <nginx-forum@nginx.us> wrote:
> Необходимо сделать проксирование запросов вида
> http://site.ru/Mydll.dll?al=5f4ff3cb6478424481d6dfdf9d9a3696 на другой
> веб-сервер.При этом проксировать нужно только запросы указанного вида,
> любые
> другие в том числе и http://site.ru/Mydll.dll должны быть запрещены.
>
> 1.так
> location ~* ^/Mydll.dll(.*) {
> proxy_pass http://192.168.0.2:3000/$1$is_args$args;
> }
> срабатывает на любые запросы.
>
> 2. так
> location ~* ^/Mydll.dll$ {
> deny all;
> }
>
> location ~* ^/Mydll.dll(.*) {
> proxy_pass http://192.168.0.2:3000/$1$is_args$args;
> }
> Запрещено всё вообще, не редиректит разрешённые запросы.
>
> 3. так
> location = /Mydll.dll\?al=(.*) {
> proxy_pass http://192.168.0.2:3000/$1$is_args$args;
> }
> тоже не работает - правило не срабатывает.
>
> Вопрос: как составить регулярное выражение, чтобы правило в location
> срабатывало только на URL разрешённого вида?
> Спасибо.
>
> Posted at Nginx Forum:
> http://forum.nginx.org/read.php?21,257789,257789#msg-257789
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru@nginx.org <javascript:;>
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru