Welcome! Log In Create A New Profile

Advanced

Странное поведение http_rewrite_module

Alexander Radostin
January 18, 2010 08:38PM
Я уже писал сюда про эту проблему, но дело было перед НГ и формулировка
подкачала :) Постараюсь пояснить подробней в чем дело.

Вот правило:
rewrite ^/download/([^/]+)/(.+)/$
/index.php/download/?hash=$1&filename=$2 last;

Запускаем на вход вот такой url (валидный, строки обработаны заранее
urlencode):
/download/b7050cd8740a51db29c7bef9a81c74b970cabca3/19%20Thr3shold%20%26%20Detune%20-%20Shapeshifter%20(Epic%20Mix).mp3/

На выходе получаем:
["QUERY_STRING"]=>
string(120)
"hash=b7050cd8740a51db29c7bef9a81c74b970cabca3&filename=19%20Thr3shold%20&%20Detune%20-%20Shapeshifter%20(Epic%20Mix).mp3"

То, что было на входе было закодированным амперсантом (%26), на выходе
магическим образом опять им стало, только уже без энкода, соотвественно
появляется фантомая переменная и имя файла обрезается. Аналогичный результат
получаем и когда на входе амперсант незакодирован. Интересно еще то, что
пробелы (%20) без всяких проблем оказываются в результирующей строке, чего
не скажешь о закодированных символах прямого слеша или апострофа, которые
раскодируются в процессе рерайта в оригинальные.

Есть какое то разумное объяснение такому поведению и есть ли способ
сохранить оригинальные строки в результирущем url? Заранее благодарен за все
ответы.


Саша Радостин
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Странное поведение http_rewrite_module

Alexander Radostin January 18, 2010 08:38PM

Re: Странное поведение http_rewrite_module

Kruglov Eugenie January 20, 2010 06:02AM

Re: Странное поведение http_rewrite_module

Maxim Dounin January 20, 2010 06:28AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 268
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