Règle de réécriture nginx pour un sous-domaine variable

Aidez-moi à créer une règle de réécriture dans Nginx afin que cette URL https://subdomain.domain.com/api soit réécrit à https://subdomain-api.domain.com

Merci d'avance.

Par la documentation nginx, il est préférable d'utiliser des locations au lieu de créer des règles de réécriture. Une telle chose devrait vous aider:

server { server_name subdomain.domain.com; location /api { return 301 https://subdomain-api.domain.com$request_uri; } } 

Selon l'autre réponse, il est préférable d'utiliser les redirections, mais vous devez également vous assurer que le schéma HTTP et les parameters d'URL sont conservés, de la manière suivante:

Selon votre commentaire, si vous savez combien de sous-domaines vous allez avoir, il est plus simple de simplement les définir tous:

 server { server_name subdomain1.domain.com; location /api { return 301 $scheme://sub1-api.domain.com/$1$is_args$query_ssortingng; } } server { server_name subdomain2.domain.com; location /api { return 301 $scheme://sub2-api.domain.com/$1$is_args$query_ssortingng; } } 

Alternativement, cela pourrait fonctionner:

 server { server_name: subdomain1.domain.com subdomain2.domain.com subdomain3.domain.com; location /api { if ($host ~* (.*)\.domain\.com) { set $sub_domain $1; return 301 $scheme://$sub_domain-api.domain.com/$1$is_args$query_ssortingng; } } }