<div>Я уже писал сюда про эту проблему, но дело было перед НГ и формулировка подкачала :) Постараюсь пояснить подробней в чем дело.</div><div><br></div><div>Вот правило:</div><div>rewrite ^/download/([^/]+)/(.+)/$       /index.php/download/?hash=$1&amp;filename=$2        last;</div>
<div><br></div>Запускаем на вход вот такой url (валидный, строки обработаны заранее urlencode):<br><div>/download/b7050cd8740a51db29c7bef9a81c74b970cabca3/19%20Thr3shold%20%26%20Detune%20-%20Shapeshifter%20(Epic%20Mix).mp3/</div>
<div><br></div><div>На выходе получаем:</div><div>[&quot;QUERY_STRING&quot;]=&gt;<br>string(120) &quot;hash=b7050cd8740a51db29c7bef9a81c74b970cabca3&amp;filename=19%20Thr3shold%20&amp;%20Detune%20-%20Shapeshifter%20(Epic%20Mix).mp3&quot;</div>
<div><br></div><div>То, что было на входе было закодированным амперсантом (%26), на выходе магическим образом опять им стало, только уже без энкода, соотвественно появляется фантомая переменная и имя файла обрезается. Аналогичный результат получаем и когда на входе амперсант незакодирован. Интересно еще то, что пробелы (%20) без всяких проблем оказываются в результирующей строке, чего не скажешь о закодированных символах прямого слеша или апострофа, которые раскодируются в процессе рерайта в оригинальные.</div>
<div><br></div><div>Есть какое то разумное объяснение такому поведению и есть ли способ сохранить оригинальные строки в результирущем url? Заранее благодарен за все ответы.</div><div><br></div><div><br></div><div>Саша Радостин</div>
<div><span class="Apple-style-span" style="font-family: Times; font-size: medium; "></span></div>