Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re[2]: rewrite + proxy
Hello Igor,
Friday, August 29, 2008, 5:28:10 PM, you wrote:
> On Fri, Aug 29, 2008 at 04:09:45PM +0700, Denis F. Latypoff wrote:
>> Hello Igor,
>>
>> Никогда не думал, что столкнусь с такой проблемой:
>>
>> upstream mod_perl {
>> server 192.168.12.10:8100;
>> }
>>
>> location /article/ {
>> rewrite ^/article/(.*)
>> /article.html?name=$1
>> break;
>> proxy_pass http://mod_perl;
>> }
>>
>> посылаем запрос:
>>
>> GET /article/%D0%AE%D0%BD%D0%B8%D0%BA%D0%BE%D0%B4 HTTP/1.1
>>
>> в логах nginx:
>>
>> 2008/08/28 14:58:19 [debug] 25550#0: *99 http request line: "GET
>> /article/%D0%AE%D0%BD%D0%B8%D0%BA%D0%BE%D0%B4 HTTP/1.1"
>> 2008/08/28 14:58:19 [debug] 25550#0: *99 http uri: "/article/Юникод"
>> 2008/08/28 14:58:19 [debug] 25550#0: *99 http args: ""
>> 2008/08/28 14:58:19 [debug] 25550#0: *99 http exten: ""
>> 2008/08/28 14:58:19 [debug] 25550#0: *99 http process request header line
>> ...
>> 2008/08/28 14:58:19 [debug] 25550#0: *99 http proxy header:
>> "GET /article.html?name=Юникод HTTP/1.0
>> ...
>>
>> в mod_perl распечатываем запрос:
>>
>> sub handler
>> {
>> my $r = shift;
>>
>> require Apache2::RequestRec;
>> print STDERR $r->the_request, "\n";
>> }
>>
>> получаем:
>>
>> GET /article.html?name=Юникод HTTP/1.0
>>
>> Хотелось бы получить
>>
>> GET /article.html?name=%D0%AE%D0%BD%D0%B8%D0%BA%D0%BE%D0%B4 HTTP/1.0
>>
>> Как?
> Прилапгаемый патч должен помочь, но не факт, что не сломает что-то другое.
За патч огромное спасибо, "другого" у меня ничего нет.
> Как же я устал от этого rewrite и escaping. Надо это всё переписывать.
:) Но согласитесь - посылать запрос к бекенду не по спеке не гоже :)
--
Best regards,
Denis Latypoff mailto:latypoff@xxxxxxxxx
|