Re: map и regexp

Mikhail Mazursky ash2kk на gmail.com
Чт Апр 28 15:05:04 MSD 2011


28 апреля 2011 г. 15:14 пользователь Igor Sysoev <igor at sysoev.ru> написал:
> On Thu, Apr 28, 2011 at 02:58:38PM +0600, Mikhail Mazursky wrote:
>> Здравствуйте!
>>
>> Судя по чейнджлогу в 0.9.6+ map поддерживает регулярные выражения.
>>
>> Подскажите пожалуйста вот такая конструкция будет работать? Сам
>> проверить пока не могу т.к. нет свежей версии nginx под рукой.
>>
>> map $host $var_from_host {
>>     ^(.+?)\.domain\.tld$ $1;
>> }
>>
>> Не хочу использовать регулярки в server_name.
>
>     default                      "";
>     ^(<?NAME>.+?)\.domain\.tld$  $NAME;

Не работает:
# sudo service nginx restart
Restarting nginx: nginx: [emerg] unknown "name" variable
nginx: configuration file /etc/nginx/nginx.conf test failed

Полный конфиг:
user www-data;
worker_processes  1;

error_log  /var/log/nginx/error.log;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
    # multi_accept on;
}

http {

    map $host $domainId {
	default		"";
	^(?<name>.+?)\.test$ $name;
        #пробовал ^(?P<name>.+?)\.test$ $name;
        #пробовал ^(<?name>.+?)\.test$ $name; - это была опечатка?
    }
}

Система:
Linux ... 2.6.35-28-generic #50-Ubuntu SMP Fri Mar 18 18:42:20 UTC
2011 x86_64 GNU/Linux


Подробная информация о списке рассылки nginx-ru