重定向除一个子域之外的所有子域?

Redirect all but one subdomains?

我有一个域 example.com 并且想将所有子域重定向到 http://example.com 。 然而,一个例外是后端子域,它是 api.example.com.

如何使用 Nginx 完成此操作?

您可以使用多个 server 的组合(包括带有通配子域的那个)。这是此类配置的最小示例:

server {
    listen          80;
    server_name     api.example.com;
    add_header      Content-Type    text/plain;
    return  200     "api";
}
server {
    listen          80;
    server_name     *.example.com;
    return  301     $scheme://example.com$request_uri;
}
server {
    listen          80;
    server_name     example.com;
    add_header      Content-Type    text/plain;
    return  200     "main";
}

您可以在文档中阅读有关配置服务器名称的更多信息:http://nginx.org/en/docs/http/server_names.html