nginx check file existense with regexps.

-=Devil_InSide=- devil_inside at mail.ru
Sun Feb 24 09:18:31 UTC 2013


спасибо, похожее 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 at mail.ru> написал:
|
|> ,-----[Валентин Бартенев, 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 at jabber.ru   *
*   Registered linux user #450844    *
**************************************




Подробная информация о списке рассылки nginx-ru