首页 > 解决方案 > 使用 Nginx 在服务器块中重定向多个子域

问题描述

我想用 Nginx 将我服务器上的多个子域重定向到另一个。到目前为止,这是我正在做的事情:

server {
        listen 80;
        server_name firstsub.example.com;
        return 301 $scheme://firstsub.anothersite.co$request_uri;
}
server {
        listen 80;
        server_name secondsub.example.com;
        return 301 $scheme://secondsub.anothersite.co$request_uri;
}

因为我有大约 10 个子域,所以像这样添加它真的很难看。有没有办法在一个服务器块中编写多个域重定向?如何?

标签: nginx

解决方案


如果所有域都具有一致的模式,则可以将正则表达式server_name指令一起使用。

例如:

server {
    listen 80;
    server_name ~^(www\.)?(?<domain>.+)\.example\.com$;
    return 301 $scheme://$domain.anothersite.co$request_uri;
}

有关详细信息,请参阅此文档


推荐阅读