Como as capturas nomeadas do nginx 0.8.25 podem ser usadas no server_name. Você deveria usá-los.
Aqui, o subdomínio será armazenado em uma variável chamada $sub
. Então você poderá reutilizá-lo na diretiva rewrite
:
server {
listen 80;
server_name ~^(?<sub>\w+)\.olddomain\.com$;
rewrite ^ $scheme://$sub.doma.in$request_uri? permanent;
}
Como alternativa, você pode manter seu Regex real e usar $1
em uma diretiva return
:
server {
listen 80;
server_name ~^(\w+)\.olddomain\.com$;
return 301 $scheme://$1.doma.in$request_uri;
}
Por fim, observe que a diretiva return
é a melhor abordagem para um redirecionamento. Você pode encontrar Pitfalls usando rewrite
para um redirecionar.