On Thursday 21 February 2013 02:07:06 -=Devil_InSide=- wrote: > добрый день. > > возникла проблема при переезде с одной технологии раздачи файлов на nginx. > файлы исторически лежат в дереве вида > > /opt/xml/files/389/10258063/10258063.xml > > исторически же, клиенты, пользующие эти же файлы, используют ссылки для их > получения вида > http://domain.com/xml/index.html?xml=10258063 > > никак не могу поймать промежуточную папку 389. > переменные для пути прекрасно подставляются, но вот неучтенную и > неиспользуемую в юрле папку не жрет. > > try_files /opt/xml/files/(\d+)/$arg_xml/$arg_xml.xml > /opt/xml/not_available.xml; > > #rewrite ^ /xml/files/$1/$arg_xml/$arg_xml.xml? permanent; > > if ( -e /opt/xml/files/(\d+)) { > return 999; > } > if ( -f /opt/xml/files/(\d+)/$arg_xml/$arg_xml.xml ) { > rewrite ^ /xml/files/price/xml/$1/$arg_xml/$arg_xml.xml? permanent; > } > > -=-=-=-=- > > максимальный результат преобразований: > > http://domain.com/xml/files//10258063/10258063.xml > > я чтото делаю не так, или же nginx не умеет проверять файлы , используя > регулярные выражения? >
Да. Вы пытаетесь написать регулярное выражение там, где принимается простая строка и предполагаете, что nginx будет с радостью сканировать на каждый запрос всю ветвь файловой системы, а затем бегать по ним с регулярным выражением. Если эта директория произвольна и никак не отображается на запрос, то какой в ней смысл? Команда mv должна помочь решить эту проблему. -- Валентин Бартенев http://nginx.com/support.html http://nginx.org/en/donation.html > ps: > гугление дало множество интересных решений, но все они использовались > авторами в конфигурации, когда параметров в юрле хватало на однозначное > нахождение файла на фс. _______________________________________________ nginx-ru mailing list [email protected] http://mailman.nginx.org/mailman/listinfo/nginx-ru
