ПРОЕКТЫ 


  АРХИВ 


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[2]: nginx + rewrite (нужно упрост ить)



>> Всем привет,
>>
>> помогите упростить rewrite правила для nginx
>>
>>
>>    rewrite  "^/(.+?)/:(s|b|p|c)([0-9]+)$"                                    
>>                           "/index.php?op=sections&act=show&$2=$3"            
>>                              last;
>>    rewrite  "^/(.+?)/:(s|b|p|c)([0-9]+):(s|b|p|c)([0-9]+)$"                  
>>                           "/index.php?op=sections&act=show&$2=$3&$4=$5"      
>>                              last;
>>    rewrite  
>> "^/(.+?)/:(s|b|p|c)([0-9]+):(s|b|p|c)([0-9]+):(s|b|p|c)([0-9]+)$"            
>>               "/index.php?op=sections&act=show&$2=$3&$4=$5&$6=$7"            
>>                  last;
>>    rewrite  
>> "^/(.+?)/:(s|b|p|c)([0-9]+):(s|b|p|c)([0-9]+):(s|b|p|c)([0-9]+):(s|b|p|c)([0-9]+)$"
>>         "/index.php?op=sections&act=show&$2=$3&$4=$5&$6=$7&$8=$9"            
>>            last;
>>
>>
>> одной регуляркой это можно сделать? еще проблема, максимум может быть 9 
>> переменных в правиле, т.е. если добавиться еще переменная, ничего не будет 
>> работать.
>>
>> спасибо.

SS> Я могу ошибаться, но регекспами такая задача не решается.
Вообще-то в теории-то цампутер сайенс конечно никак (конечные
автоматы, нету стека и все такое), но на практике в PCRE они расширены

http://www.php.net/manual/en/regexp.reference.recursive.php

SS> Вам нужно заменять (:(s|b|p|c)(\d+))+ на &$n=$(n+1), но проблема в
SS> том, что регекспы "не умеют считать".
SS> Либо рекурсивно заменять :(s|b|p|c)(\d+) на &$1=$2, но регекспы не
SS> умеют перезапускаться.

SS> proxy_pass на микроскрипт, отдающий X-Accel-Redirect поможет сделать
SS> любые странные замены.



-- 
Best regards,
 Sergey



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


 




Copyright © Lexa Software, 1996-2009.