使用nginx将所有子域映射到另一个域

时间:2016-07-28 13:27:00

标签: nginx

使用此服务器配置,我可以将所有请求重定向到另一个域:

server {
    server_name example.net;
    listen [::]:80;
    listen 80;

    return 301 https://other.net$request_uri;
}  

但是如何将所有子域重定向到新域?

www.example.net     -->   www.other.net
webmail.example.net -->   webmail.other.net
forum.example.net   -->   forum.other.net

我可以在return命令中使用占位符吗?

1 个答案:

答案 0 :(得分:2)

server_name中使用正则表达式:

server {
  server_name ~^(?P<subdomain>.+\.)example\.net$ ;
  listen [::]:80;
  listen 80;

  return 301 https://${subdomain}other.net$request_uri;
}

请参阅this answer,因为在Nginx中指定正则表达式的变体很少。