On Wed, May 02, 2007 at 04:25:25PM +0400, alex storm wrote:
> Я понимаю что лучше, но так не работает, из-за чего тема и было поднята...
> <!--#if expr="${REQUEST_URI} = \/events\/1.html" -->
> Очевидно nginx сравнивает со строкой полностью, \/events\/1.html,
> воспринимая \ не как экранирующий символ, а как символ, с которого
> начинается строка.
Тогда - так:
<!--#if expr="${REQUEST_URI} = \/events/" -->
Нужно экранировать только первый символ, чтобы показать, что это не regex.
>
> Igor Sysoev пишет:
> >В данном случае лучше использовать сравнение со строкой:
> >
> ><!--#if expr="${REQUEST_URI} = \/events\/" -->
> >
> >
> >>Видно где-то все-таки в тестах промахнулся, спасибо за помощь.
> >>
> >>Igor Sysoev пишет:
> >>
> >>>On Wed, May 02, 2007 at 01:32:45PM +0400, alex storm wrote:
> >>>
> >>>
> >>>
> >>>>Вспомнил. При таком раскладе оно работает как /\/events\/.*/,
> >>>>отлавливая первое же вхождение.
> >>>>Следовательно отрабатывает как на /events/, так и /events/test/.
> >>>>Нет ли спопосба заэкранировать в виде ${REQUEST_URI} = \/events\/ ?
> >>>>
> >>>>
> >>>
> >>>
> >>>>Я понимаю что конструкция // воспринимается как регэксп, а при
> >>>>нахождении конструкции \/\/ - nginx воспринимает это как строку и
> >>>>сравнивает с ней, что приводит к еще меньшим результатам.
> >>>>
> >>>>
> >>>Сравнение со строкой:
> >>>
> >>><!--#if expr="${REQUEST_URI} = \/events\/" -->
> >>>
> >>>Регулярное выражение:
> >>>
> >>><!--#if expr="${REQUEST_URI} = /^\/events\/$/" -->
> >>>
> >>>
> >>>
> >>>>Igor Sysoev пишет:
> >>>>
> >>>>
> >>>>>On Sun, Apr 22, 2007 at 03:31:04PM +0400, alex storm wrote:
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>>Люди, спасите.
> >>>>>>
> >>>>>>Либо я совсем мозг проел, либо это не работает и работать не должно.
> >>>>>>Регэспом цепляет, но естественно парсит всю строку.
> >>>>>>
> >>>>>>Конструкция <!--#if expr="${REQUEST_URI} = \/" --> проходит, более
> >>>>>>сложные нет.
> >>>>>>Попытки экранировать в любом виде игнорируются.
> >>>>>>
> >>>>>>Т.е. Конструкции типа
> >>>>>><!--#if expr="${REQUEST_URI} = \/events\/" -->
> >>>>>><!--#if expr="${REQUEST_URI} = /events\/$/" -->
> >>>>>>и т.п. не работают.
> >>>>>>
> >>>>>>Это можно завести, или в морг?
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>Дожно работать такое:
> >>>>><!--#if expr="${REQUEST_URI} = /\/events\//" -->
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>>P.S. Есть древний сайт, истерически собирающийся из ssi, есть желание
> >>>>>>перевести его под nginx.
> >>>>>>P.P.S. Прошлай раз протупил - не дошел до места, где сказано что ssi
> >>>>>>поддерживает регэкспы.
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>
> >>>>>
> >>>>--
> >>>>Alex Storm, system administrator
> >>>>Federal State Unitary Enterprise "The Russian Television and Radio
> >>>>Broadcasting Company"
> >>>>
> >>>>
> >>>>
> >>>
> >>>
> >>--
> >>Alex Storm, system administrator
> >>Federal State Unitary Enterprise "The Russian Television and Radio
> >>Broadcasting Company"
> >>
> >>
> >
> >
>
>
> --
> Alex Storm, system administrator
> Federal State Unitary Enterprise "The Russian Television and Radio
> Broadcasting Company"
>
--
Игорь Сысоев
http://sysoev.ru