ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: nginx check file existense with regexps.



спасибо, похожее try_files тоже туда сувал, но , оказалось, не совсем правильно 
выстроил try_files и к тому времени еще не выяснил, как взять последние две 
цифры из имени файла.
)

,---[Thu, 21 Feb 2013 22:45:21 +0400 Vadim Lazovskiy:]
|Прошу прощения, не правильно понял задачу.
|
|        map $arg_xml $xml_path {
|                "~(?<path>\d{2})$" $path;
|        }
|
|        ...
|
|        location = /xml/index.html {
|                root /opt/xml/files;
|                try_files /$xml_path/$arg_xml/$arg_xml.xml /notfound.xml;
|        }
|
|
|
|21 февраля 2013 г., 21:01 пользователь -=Devil_InSide=- <
|devil_inside@xxxxxxx> написал:
|
|> ,-----[Валентин Бартенев, 21 February 2013 14:18]:
|>
|> > On Thursday 21 February 2013 02:07:06 -=Devil_InSide=- wrote:
|> >> добрый день.
|> >>
|> >> возникла проблема при переезде с одной технологии раздачи файлов на
|> >> nginx. файлы исторически лежат в дереве вида
|> >>
|> >> http://domain.com/xml/files//10258063/10258063.xml
|> ----------------8<--------------
|> >> я чтото делаю не так, или же nginx не умеет проверять файлы , используя
|> >> регулярные выражения?
|> >>
|> >
|> > Да. Вы пытаетесь написать регулярное выражение там, где принимается
|> > простая строка и предполагаете, что nginx будет с радостью сканировать на
|> > каждый запрос всю ветвь файловой системы, а затем бегать по ним с
|> > регулярным выражением.
|> >
|> > Если эта директория произвольна и никак не отображается на запрос, то
|> > какой в ней смысл? Команда mv должна помочь решить эту проблему.
|> >
|>
|> выяснил схему переделывания - все оказалось не так плохо,
|> файлы выстраивались
|> /opt/xml/files/56/123456/123456.xml
|> то есть для пред-директории юзались последние две цифры версии-имени.
|>
|> обошелся приблизительно так в двух случаях:
|>
|> rewrite "^/xml/files/(\d+(\d{2}))\.xml$" /xml/files/$2/$1/$1.xml;
|> и
|>         if ( $arg_file ~ "[0-9]+(?P<a>[0-9][0-9])"){
|> rewrite ^ /xml/files/$a/$arg_file/$arg_file.xml? permanent;
|> }
|>

-- 
__________
mpd status:     [playing]
ZZ Top - TV Dinners (Live)
**************************************
*  jabber:  devil_inside@xxxxxxxxx   *
*   Registered linux user #450844    *
**************************************


_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.