ПРОЕКТЫ 


  АРХИВ 


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


  • To: nginx-ru@xxxxxxxxx
  • Subject: Re: nginx + rewrite (нужно упростит ь)
  • From: Sergey Shepelev <temotor@xxxxxxxxx>
  • Date: Mon, 21 Dec 2009 20:12:43 +0300
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:content-type :content-transfer-encoding; bh=aeWB+9B2s+SLNomW2WoL8Ifh7XgriqiPjMnL759uM2k=; b=xobuTox747L+OtONPlrxOOdgYI2w2LyDa6jqDbc/Z1ZYgDp9y9XqQClCX9eJ4AwXZ1 ZuyoBeXA2O8uNlkHx58jzwHsO2tuKm0k43rUUeMwlCaH4wI5GgSv+fYjwfXRSFrujh7T v3+FhQ7VL3yyc8eAFS9aZxtPr91gJk/LxQQtE=
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; b=u40eZOsa2A57Yfx8qkQEFOBTC/tlSIORD9LA28yEYOgLbjTYuQFCY9kEBaZ2jGCQYZ z4wfRQnJgQ90vz9zFeQ/3EWuYIku19tAmPIZZufZ8a831OIAjbNJbXLArph2VSCi34bZ QQdE1FwYPYnzM1IErzSSxb+Zt7+eaFYwC1tMw=
  • In-reply-to: <e618349c4f2ce24a4ff3dc0b2727f1e5.NginxMailingListRussian@xxxxxxxxxxxxxxx>
  • References: <e618349c4f2ce24a4ff3dc0b2727f1e5.NginxMailingListRussian@xxxxxxxxxxxxxxx>

2009/12/21 grin <nginx-forum@xxxxxxxx>:
> Всем привет,
>
> помогите упростить 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 
> переменных в правиле, т.е. если добавиться еще переменная, ничего не будет 
> работать.
>
> спасибо.

Я могу ошибаться, но регекспами такая задача не решается.

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

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

>
> Posted at Nginx Forum: 
> http://forum.nginx.org/read.php?21,32466,32466#msg-32466
>
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru@xxxxxxxxx
> http://nginx.org/mailman/listinfo/nginx-ru
>
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.