2016-11-07 2 views
0

Я пытаюсь манипулировать переменной nginx.Как я могу манипулировать строкой переменной nginx

У меня есть имя переменной $ user, которое содержит UPN, например [email protected] Я хочу установить другую переменную $ xuser; быть пользователем $ минус @domain - то есть кто-то.

Это делается в блоке местоположения, поэтому я не думаю, что могу использовать карту.

Я попытался это, но $ xuser никогда не кажется, чтобы установить:

if ($user ~* "(?<p>[aa-zZ]+)@example.com") 
{ 
     set $xuser $p; 
} 

ответ

1

Вы можете использовать карту в 'HTTP' блока.

http://nginx.org/en/docs/http/ngx_http_map_module.html

map $user $xuser { 
    ~^(\w+)@example.com $1; 
    default ''; 
} 
+0

Спасибо, я должен был преобразовать его в именованный параметр соответствия, в противном случае он бросил ошибку относительно $ 1 является неопределенным – Baywatch

Смежные вопросы