ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: проблема с rewrite и query_string



On Thu, Nov 15, 2007 at 09:43:29AM +0300, Andrei Nigmatulin wrote:

> Игорь, есть ли у Вас какие нибудь комментарии по поводу этого вопроса ?

Это баг. Лечиться не будет. Как-то облегчить ситуацию можно тем, что
$args можно ставить с помощью set.

> On Friday 02 November 2007 01:57, Andrei Nigmatulin wrote:
> > Привет !
> >
> > Столкнулся с такой проблемой:
> >
> > Если делать
> >
> >     rewrite ^ /path/file?query_string last;
> >
> > открытым текстом, то все работает как и ожидается - ищется location для
> > "/path/file", а query_string при обращении к статике отбрасывается.
> >
> > Если уже имеется переменная для перезаписываемого урла
> >
> >     set $myurl "/path/file?query_string";
> >     rewrite ^ $myurl last;
> >
> > то location ищется для "/path/file?query_string", хотя судя по
> > документации, не должен.
> >
> > Мало того, "?query_string" не отбрасывается, и если это статика то nginx
> > пытается открыть с диска файл "/root/path/file?query_string".
> >
> > Чтобы обойти эту проблему пришлось изобрести такое:
> >
> >         set $myurl_args "";
> >
> >         if ($myurl ~ \?(.*) ) {
> >             set $myurl_args $1;
> >         }
> >
> >         if ($myurl ~ ^(.*)\? ) {
> >             set $myurl $1;
> >         }
> >
> >         rewrite ^ $myurl?$myurl_args last;
> >
> > Вопрос, это так и задумано или это баг ?
> >
> > nginx-0.6.14, linux.


-- 
Игорь Сысоев
http://sysoev.ru



 




Copyright © Lexa Software, 1996-2009.