将whatever.net重定向到whatever.com,而不在nginx.conf中明确写出“what”

时间:2018-05-05 07:24:26

标签: nginx

我有一个网络应用程序,它将在许多不同的域(可能还有子域)上运行。每个域/子域都将同时作为.net.com提供。我想将.net的每个请求重定向到.com

示例:

www.whatever.net -> www.whatever.com
www.sub.whatever.net -> www.sub.whatever.com
whatever.net -> whatever.com
sub.whatever.net -> sub.whatever.com
somethingelse.net -> somethingelse.com
...

出于各种原因,我想只有一个适用于每个安装的nginx.conf文件,所以我写不出类似的东西:

server {
    server_name .net;
    return 301 $scheme://whatever.com$request_uri;
}

因为这仅适用于 whatever.net / whatever.com 域下的安装。所以我试过了:

server {
    server_name  "~^(?<name>.+)\.net$";
    return 301 $scheme://$name.com$request_uri;
}

但这不起作用,它捕获每个请求,不仅包括来自.net域的请求,而且(至少在chrome上)结果是地址栏的内容变为:{{1} }。

我是nginx的新手,我做错了什么?

修改.com/thequerypart的其余部分是另一个nginx.conf块,以:

开头
server

它可以在没有另一个的情况下正常工作。

1 个答案:

答案 0 :(得分:0)

我......并不知道浏览器会缓存“永久移动”的内容。 (有道理),我在问题中显示的设置有效,但先前的不同尝试没有,并且被缓存了。所以,对于将来可能会到这里的任何人来说,答案是:

server {
    server_name  "~^(?<name>.+)\.net$";
    return 301 $scheme://$name.com$request_uri;
}