ssi

Igor Sysoev is at rambler-co.ru
Wed May 2 16:31:37 MSD 2007


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





More information about the nginx-ru mailing list