Re: Регулярные выражения в location

s.ivanov nginx-forum at nginx.us
Tue Jun 2 08:35:41 UTC 2015


Иван Мишин Wrote:
-------------------------------------------------------
> >
> > Предложенный вами синтаксис location/ пришлось сократить, иначе при
> > проверке
> > конфигурации возникала ошибка:
> > nginx: [emerg] named location "@nameloc" can be on the server level
> only
> 
> 
> Будьте внимательнее!
> В ошибке явно же написано   что именованные локейшн @nameloc должен
> быть на
> уровне директивы server. В моем варианте именно так и есть, скорее
> всего вы
> опечатались когда пробовали мой вариант.
> 
> Сам не так давно сталкивался с похожей задачей, поэтому мой конфиг
> 100%
> рабочий ибо опробован.
> 
> 14 апреля 2015 г., 16:59 пользователь s.ivanov <nginx-forum at nginx.us>
> написал:
> 
> > С таким вариантом получаем 403 Forbidden на URL любого типа,
> разрешённые и
> > нет — проксирования не происходит, не срабатывает правило.
> > Пробовал и так:
> >
> > location /Mydll.dll {
> > if ($query_string ~ al= ) {
> > proxy_pass http://192.168.0.2:3000;
> > }
> > deny all;
> > }
> >
> > и так:
> > proxy_pass http://192.168.0.2:3000$1;
> >
> > и так:
> > proxy_pass http://192.168.0.2:3000/$1$is_args$args;;
> >
> >
> > Предложенный вами синтаксис location/ пришлось сократить, иначе при
> > проверке
> > конфигурации возникала ошибка:
> > nginx: [emerg] named location "@nameloc" can be on the server level
> only
> >
> > Возможно, столь сложные конструкции регулярных выражений (разрешить
> всё
> > кроме) не поддерживаются в nginx в принципе?
> >
> > Posted at Nginx Forum:
> > http://forum.nginx.org/read.php?21,17244,258029#msg-258029
> >
> > _______________________________________________
> > nginx-ru mailing list
> > nginx-ru at nginx.org
> > http://mailman.nginx.org/mailman/listinfo/nginx-ru
> >
> _______________________________________________
> nginx-ru mailing list
> nginx-ru at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru

Коллега, я рано обрадовался - запросы к http://site.ru/Mydll.dll?al=
приводят к переадресации, а должны завершаться 403-ей...
Т.е.:

http://site.ru/Mydll.dll - 403, ok
http://site.ru/Mydll.dll? - 403, ok
http://site.ru/Mydll.dll?a - 403, ok
http://site.ru/Mydll.dll?al - 403, ok
http://site.ru/Mydll.dll?al= - пустой al без указания кода, переадресация на
@nameloc, не ok :(

Очевидно, надо на что-то изменить "~ al=" в 

location /Mydll.dll {
if ($query_string ~ al= )
{
return 418;
}

?

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,17244,259335#msg-259335



Подробная информация о списке рассылки nginx-ru