ПРОЕКТЫ 


  АРХИВ 


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: Регекс локейшены с русс кими именами


  • To: nginx-ru@xxxxxxxxx
  • Subject: Re: Регекс локейшены с русс кими именами
  • From: "RedRat" <nginx-forum@xxxxxxxx>
  • Date: Wed, 20 Jul 2011 09:48:52 -0400
  • Dkim-signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mickey.jlkhosting.com; s=x; h=Date:Sender:From:References:In-Reply-To:Message-ID:Content-Transfer-Encoding:Content-Type:Subject:To; bh=VTwKwAMEfSgACGOOjWDUVOF0O4a+Tifr8lUtUaY9Bg8=; b=MH8iv6V6xuoN7yRuhlSCOtRaszjCcG6IRc8mhVpyweYcU1GFwZKqGX1iO4ZuXpzrb3z3kcUZDOW1FSW5wecwjoTfs1eIj0W+SMh+YReSkfWUmUdYqmT6xfA0TPApGKbY;
  • In-reply-to: <20110720114832.GD1137@xxxxxxxxxx>
  • References: <20110720114832.GD1137@xxxxxxxxxx>

Maxim Dounin Пишет:
-------------------------------------------------------
> Для case-insensitive matching'а UTF-8 строк можно
сделать так 
> (если конечно pcre собран с UTF-8 и т.п.):
> 
>     location ~* (*UTF8)^/старый: {
>         ...
>     }
> 
> Но я *не* рекомендую так делать в общем
случае, ибо
> на запросах с uri не являющимся
валидной utf-8 строкой будет
> возвращена 500-я ошибка.  
> 
> Безопаснее решение - написать
несколько
> статических location'ов или регулярное
выражение с
> альтернативами, i.e.
> 
>     location /Старый: { ... }
>     location /старый: { ... }
> 
>     location ~ ^/(?:С|с)тарый: { ... }

Да, наверное, так и сделаю. Просто
хотелось одним локейшеном обойтись,
но тут лучше перебдеть. Спасибо за
совет!

> Директива rewrite сама по себе выполняет
регулярное выражение, 
> соответственно $2 будет браться из
него (последнего выполненного).
> Можно сделать с использованием
именованных выделений, так:
> 
>     location ~ ^/старый:(?<page>.*)$ {
>         rewrite ^ /новый:$page permanent;
>     }

Я просто думал, что раз в первой части
rewrite не используется выделение,
то оно возьмётся из локейшена. Ещё раз
спасибо, теперь всё ясно.

Posted at Nginx Forum: 
http://forum.nginx.org/read.php?21,212675,212682#msg-212682


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


 




Copyright © Lexa Software, 1996-2009.