Nginx 301子域

时间:2018-09-30 12:32:36

标签: nginx http-status-code-301

我想要这个功能:

mydomain.com--->301--->mynewdomain.com
subdomain1.mydomain.com--->301--->subdomain1.mynewdomain.com
subdomain2.mydomain.com--->301--->subdomain2.mynewdomain.com
...............
subdomain*.mydomain.com--->301--->subdomain*.mynewdomain.com

那么谁能给我一些Nginx配置代码。 我已经尝试过了,但是没有用:

server{
    listen 80;
    server_name "~^(.*)mydomain.com";
    set $sub_name $1;
    return 301 $scheme://{$sub_name}mynewdomain.com$request_uri ;
}

1 个答案:

答案 0 :(得分:0)

您应该在server_name正则表达式中使用命名捕获。有关详细信息,请参见this document

在变量名需要大括号的情况下,请使用${ ... }

例如:

server{
    listen 80;
    server_name ~^(?<sub_name>.*)mydomain.com;
    return 301 $scheme://${sub_name}mynewdomain.com$request_uri;
}