Пожалуйста, помогите мне создать правило перезаписи в Nginx, чтобы этот URL https://subdomain.domain.com/api был перезаписан на https: //subdomain-api.domain .com
Заранее спасибо.
Согласно документации nginx, лучше использовать местоположения вместо создания правил перезаписи. Что-то вроде этого должно вам помочь:
server {
server_name subdomain.domain.com;
location /api {
return 301 https://subdomain-api.domain.com$request_uri;
}
}
Согласно другому ответу, лучше использовать перенаправления, но вы также должны убедиться, что схема HTTP и любые параметры URL-адреса сохранены, например:
Согласно вашему комментарию, если вы знаете, сколько поддоменов у вас будет, проще всего определить их все:
server {
server_name subdomain1.domain.com;
location /api {
return 301 $scheme://sub1-api.domain.com/$1$is_args$query_string;
}
}
server {
server_name subdomain2.domain.com;
location /api {
return 301 $scheme://sub2-api.domain.com/$1$is_args$query_string;
}
}
В качестве альтернативы это может сработать:
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_string;
}
}
}