Nginx 子域动态 301 重定向到主域

Dynamic 301 redirects of Sub-domain to main domain in Nginx

如何在 Nginx 中为主域重定向所有子域?

aaa.domain1.com -> domain1.com

www.domain2.com -> domain2.com

bbb.domain3.com -> domain3.com

server_name *.domain1.com *.domain2.com *.domain3.com *.domain4.com;
return 301 http://XXX$request_uri;

你可以试试

server {
    listen       ....;
    server_name  ~^.*\.?(?<domain>.+\.com)$;
    return       301 http://$domain$request_uri;
}

这将检查任何具有以下内容的服务器名称:

  • 是否有一个或多个子域 (^.*\.?)
  • 后跟任意 main-domain.com ((?<domain>.+\.com)$)

?<domain>main-domain.com保存在一个变量中,所以可以在return语句中使用(domain1.com, domain2.com, 等. 在你的情况下).

注意:我没有测试这个,但希望你能在这个例子中看到这个概念。