ПРОЕКТЫ 


  АРХИВ 


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]

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



Привет !

Столкнулся с такой проблемой:

Если делать

        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.


-- 
Andrei Nigmatulin
GPG PUB KEY 6449830D

Now I lay me down to sleep(3)
Pray the OS my core to keep
If I die before I wake
Pray the Disk my core to take


 




Copyright © Lexa Software, 1996-2009.