Welcome! Log In Create A New Profile

Advanced

Re: Отсутствие urlencode в результирующем url при rewrite

Maxim Dounin
December 29, 2009 08:48AM
Hello!

On Tue, Dec 29, 2009 at 02:28:55PM +0200, Alexander Radostin wrote:

> Все привет!
>
> Мы недавно перешли с лайти на nginx и вылезла интересная проблема с
> различным поведением при rewrite.
>
> Вот такое правило:
>
> rewrite ^/download/([^/]+)/(.+)/$
> /index.php/download/?hash=$1&filename=$2 last;
>
> работает как надо, но к аргументам $1 и $2 не применяется urlencode, что
> приводит к проблемам в случае если в $2, например, есть апостроф "&". В
> итоге query_string получается битая (имя файла обрывается и появляется еще
> одна переменная). Как можно обойти эту проблему и есть ли способ делать
> url_encode для аргументов в результирующем url?

При составлении query string nginx экранирует только символы, не
допустимые в query string. Т.е. скажем пробел будет экранирован,
а амперсенд (апостроф - это совсем другой символ) - нет.

Следить за структурой аргументов - это совсем отдельная задача. И
она не может решаться автоматически, т.к. нужна возможность
вставлять из одной переменной несколько аргументов.

Варианты решения:

1. написать N rewrite'ов, делающих то экранирование которое вам
нужно

2. написать нужное экранирование на встроенном перле

3. приложить патчи catap'а для получения переменных $urlencode_*

Совсем правильно было бы конечно отказаться от использования
rewrite'ов, да и вообще php для скачивания файлов, но это совсем
отдельный и вероятно неинтересный разговор.

Maxim Dounin

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Отсутствие urlencode в результирующем url при rewrite

Alexander Radostin December 29, 2009 07:30AM

Re: Отсутствие urlencode в результирующем url при rewrite

Denis F. Latypoff December 29, 2009 07:56AM

Re: Отсутствие urlencode в результирующем url при rewrite

Andrey N. Oktyabrski December 29, 2009 09:06AM

Re[2]: Отсутствие urlencode в результирующем url при rewrite

Denis F. Latypoff December 29, 2009 09:46AM

Re: Отсутствие urlencode в результирующем url при rewrite

Maxim Dounin December 29, 2009 08:48AM

Re: Отсутствие urlencode в результирующем url при rewrite

miksir December 29, 2009 09:24AM

Re: Отсутствие urlencode в результирующем url при rewrite

Maxim Dounin December 29, 2009 10:22AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 121
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready