Re: Помогите написать location (urlencode)

Валентин Бартенев vbart at nginx.com
Sun Feb 24 23:02:54 UTC 2013


On Sunday 24 February 2013 06:50:18 valet wrote:
> >Если запрос приходит в таком виде, то это уже не параметры, а имя
> 
> запрошенного
> файла.
> Именно так, если ничего не сделать выдаст по понятным причинам 404 по
> такому запросу.
> 
> >Должно помочь:
> >
> >location /files/check.php? {
> >rewrite \?(.*)$ /files/check.php?$1? last;
> >}
> 
> Спасибо за помощь, но к сожалению не работает. Управление уже передается на
> php (то есть локейшен ловится), но ведь php-скрипт примет в этом варианте
> неправильные параметры, да и с чего бы они подались правильные - ведь в
> вашей регулярки отсутствует какое-либо разделение параметров id и title...

Так вы укажите правильные параметры, в частности QUERY_STRING и REQUEST_URI, 
тогда всё будет работать. Указанный rewrite превратит ваш кривой запрос с 
закодированными параметрами в нормальный, и не нужно никакого "разделения 
параметров".

fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_URI        $uri$is_args$args;

--
Валентин Бартенев
http://nginx.com/support.html
http://nginx.org/en/donation.html


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