Redirect 将未定义的子域重定向到nginx中的主域?

Redirect 将未定义的子域重定向到nginx中的主域?,redirect,nginx,subdomain,Redirect,Nginx,Subdomain,我想将未定义的子域重定向到我的主域。 所以我有一个网站domain.com,我有两个子域名:sub1.domain.com和sub2.domain.com。 我想要的是,当有人试图访问sub4.domain.com时,它在nginx中不匹配,并将其重定向到domian.com。这可以实现吗?这将重定向任何子域请求。 对于所有现有子域,您必须添加server条目 # this will catch all subdomains and redirect to main domain. server

我想将未定义的子域重定向到我的主域。 所以我有一个网站domain.com,我有两个子域名:sub1.domain.com和sub2.domain.com。
我想要的是,当有人试图访问sub4.domain.com时,它在nginx中不匹配,并将其重定向到domian.com。这可以实现吗?

这将重定向任何子域请求。 对于所有现有子域,您必须添加
server
条目

# this will catch all subdomains and redirect to main domain.
server {
  server_name *.domain.com;
  return 301 http://domain.com$request_uri;
}

# this block will be used for sub1.domain.com;
server {
  server_name sub1.domain.com;
  ...
}

# this is for sub2.domain.com;
server {
  server_name sub2.domain.com;
  ...
}

# and so on...

nginx不知道哪些子域存在,哪些子域不存在。所以你必须明确地说出它们的名字。

这并不是我想要的。我想重定向尚未存在的子域。所以sub1.domain.com存在sub2.domain.com存在但是sub3.domain.com还不存在或者sub4.domain.com,我想要的是那些2,sub3和sub4,被重定向到domain.com。这可能吗?不存在子域对您意味着什么?如果
sub4.domain.com
没有DNS记录,则无法添加重定向,因此我假设您的DNS为该域提供了一些IP。我有sub4.domain.com的DNS记录,希望它重定向到domain.com。非存在对我来说意味着它在nginx的任何地方都没有定义。