воскресенье, 27 января 2013 г.

Именованные выделения в nginx

Звучит как-то странно, но штука очень полезная.
Зачастую когда мы используем регулярные выражения в конфиге nginx, нам надо обратиться к найденной в re части текста, например:
Copy Source | Copy HTML
location ~ ^/download/(.*)$ {
  alias /home/website/files/$1;
}
Этот пример работает только потому что мы обращаемся к выделению непосредственно после использвания re. Если мы задействуем какое-то другое re а потом попытаемся обратиться, переменая будет пустой.
Решением является

Copy Source | Copy HTML
server {
    server_name ~^(www\.)?(?<domain>.+)$;
    location / {
        root /sites/$domain;
    }
}
примеры взяты из официальной документации.
Отправить комментарий