Re: Сокращение регекспа
Igor Sysoev
igor на sysoev.ru
Пт Окт 29 14:51:28 MSD 2010
On Fri, Oct 29, 2010 at 06:44:45AM -0400, Halfi wrote:
> У кого-нибудь есть идеи, как можно
> сократить регекспу:
> [code]
> location ~ /wyswyg/File/(.*)$ {
> rewrite /wyswyg/File/(.*)$ http://$http_host/wyswyg/file/$1;
> }
> location ~ /wyswyg/Image/(.*)$ {
> rewrite /wyswyg/Image/(.*)$
> http://$http_host/wyswyg/image/$1;
> }
> location ~ /wyswyg/Flash/(.*)$ {
> rewrite /wyswyg/Flash/(.*)$
> http://$http_host/wyswyg/flash/$1;
> }
> location ~ /wyswyg/Media/(.*)$ {
> rewrite /wyswyg/Media/(.*)$
> http://$http_host/wyswyg/media/$1;
> }
> [/code]
> Кода достаточно много, все что мог
> сократил, работа nginxa ускорилась, хочу
> еще это оптимизировать, никак не могу
> додкматься, как можно сократить все в
> один регексп.. Существет ли способ
> перевести переменную в нижний регистр??
> В таком случае можно было бы написать
> так:
>
> [code]
> location ~ /wyswyg/(File|Image|Flash|Media)/(.*)$ {
> rewrite /wyswyg/(File|Image|Flash|Media)/(.*)$
> http://$http_host/wyswyg/($1 - как-то преобразовать в
> нижний регистр)/$2;
> }
>
> [/code]
0.8.53:
http {
map $one $two {
default "";
File file;
Image image;
Flash flash;
Media media;
}
server {
location /wyswyg/ {
location ~ /wyswyg/(?<one>[A-Z].+?)(?<tail>/.*)$ {
return 302 http://$http_host/wyswyg/$two$tail;
}
...
}
--
Игорь Сысоев
http://sysoev.ru
Подробная информация о списке рассылки nginx-ru