<br><br><div class="gmail_quote">2011/3/16 Fly3110 <span dir="ltr">&lt;<a href="mailto:nginx-forum@nginx.us">nginx-forum@nginx.us</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Так как всех запутал (не нарочно: ) ) решил собрать все в одном посте.<br>
<br>
Кусок конфига:<br>
<div class="im">location ~ ^\/ng\/size([0-9]*)\/.*(?:\.exe|).*$ {rewrite \/size([0-9]*)\/.*(?:\.exe|).*$ /ng.exe?size=$1 last;    }</div></blockquote></div><div><br></div><div>Кстати не понимаю смысла этой конструкции. Тут к _каждому_ запросу будет применена регулярка из location, а затем к которым она подошла - еще и регулярка из rewrite.</div>
<div>Проще написать rewrite без всякого location.</div><div><br></div><div>Еще лучше вот так:</div><div><br></div><div>location /ng/ {</div><div><meta http-equiv="content-type" content="text/html; charset=utf-8">   rewrite \ng\/size([0-9]*)\/.*(?:\.exe|).*$ /ng.exe?size=$1 last;</div>
<div>}</div><div><br></div><div>PS: а регулярка-то в rewrite точно правильная? Лично я нигде слеши не эскейпил, возможно оно не только не нужно, но и вредно.</div><div><br></div><div>В общем совет еще раз тщательно проверить что оно попадает в ожидаемый локейшн. Продебажить можно либо отдельным access_log на уровне location, либо add_header, тоже на уровне location.</div>
<br>-- <br>Vladimir Rusinov<br><a href="http://greenmice.info/">http://greenmice.info/</a><br>