Правило перезаписи nginx для переменного субдомена [закрыто]

Пожалуйста, помогите мне создать правило перезаписи в Nginx, чтобы этот URL https://subdomain.domain.com/api был перезаписан на https: //subdomain-api.domain .com

Заранее спасибо.

0
задан 20 June 2017 в 13:50
2 ответа

Согласно документации nginx, лучше использовать местоположения вместо создания правил перезаписи. Что-то вроде этого должно вам помочь:

server {
    server_name subdomain.domain.com;
    location /api {
        return 301 https://subdomain-api.domain.com$request_uri;
    }
}
1
ответ дан 4 December 2019 в 16:13

Согласно другому ответу, лучше использовать перенаправления, но вы также должны убедиться, что схема 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; 
        }
    }

}
0
ответ дан 4 December 2019 в 16:13

Теги

Похожие вопросы