Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: ssi
 
 
Я понимаю что лучше, но так не работает, из-за чего тема и было поднята...
<!--#if expr="${REQUEST_URI} = \/events\/1.html" -->
Очевидно nginx сравнивает со строкой полностью, \/events\/1.html, 
воспринимая \ не как экранирующий символ, а как символ, с которого 
начинается строка.
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" 
 
 
 |