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