server_name & location captures

Sergey Skvortsov skv at protey.ru
Wed Oct 21 19:04:58 MSD 2009


On 21.10.2009 18:17, Igor Sysoev wrote:
> Есть идея для выделений в server_name и location использовать специальные
> имена %N и @N:
> 
>   server {
>      server_name ~^(\w+)\.intrasearch\.(.+)$;
>      root   /usr/local/www/intrasearch-dev/%1;
> 
>   location ~ ^/~user(/[^/]+)(.+)$ {
>      alias  /homes/@1/public_html at 2;

А почему бы не использовать named captures? Которые есть в свежих
версиях PCRE.

Т.е. named capture вида (?<foobar>) сделать доступным через переменную
вида $regex_foobar (или каноничным $+{foobar}).

Скажем:

  server {
     server_name ~^(?<host_prefix>\w+)\.intrasearch\.(.+)$;
     root   /usr/local/www/intrasearch-dev/$regex_host_prefix;

  location ~ ^/~user(?<username>/[^/]+)(?<rest>.+)$ {
     alias  /homes/$regex_username/public_html$regex_rest;

-- 
Sergey Skvortsov
mailto: skv at protey.ru





More information about the nginx-ru mailing list