Re: redirect не работает

Maxim Dounin mdounin на mdounin.ru
Пт Июл 15 12:16:53 UTC 2011


Hello!

On Thu, Jul 14, 2011 at 03:51:46PM -0700, Konstantin Svist wrote:

> Конфиг:
> rewrite ^(.*)$ "$arg_r?" redirect;
> 
> Запрос:
> curl -v 'http://localhost/redir?r=http%3A%2F%2Fwww.example.com%2F%3Fa%3D1%26b%3D2%26c%3D3'
> 
> Ответ:
> Location: http://www.example.com/?a%3D1%26b%3D2%26c%3D3
> 
> Так и должно быть? Или баг?

rewrite нормально работает только при использовании переменных, 
полученных из uri при выполнении регулярного выражения.  Во всех 
остальных случаях "есть нюансы".

Надо фиксить, но как минимум это потребует нормальной 
функциональности urlencode/urldecode (и скорее всего сломает 
часть существующих конфигов).

Подборка "нюансов" у меня есть вот тут:
http://mdounin.ru/hg/nginx-tests/file/74bc22b97538/rewrite_unescape.t

Maxim Dounin



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