Welcome! Log In Create A New Profile

Advanced

Re[2]: nginx + rewrite (нужно упростить)

Sergey Bondari
December 23, 2009 06:00AM
>> Всем привет,
>>
>> помогите упростить 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@nginx.org
http://nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

nginx + rewrite (нужно упростить)

grin December 21, 2009 11:20AM

Re: nginx + rewrite (нужно упростить)

Sergey Shepelev December 21, 2009 12:14PM

Re[2]: nginx + rewrite (нужно упростить)

Sergey Bondari December 23, 2009 06:00AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 293
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready