我有一个网络应用程序,它将在许多不同的域(可能还有子域)上运行。每个域/子域都将同时作为.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
它可以在没有另一个的情况下正常工作。
答案 0 :(得分:0)
我......并不知道浏览器会缓存“永久移动”的内容。 (有道理),我在问题中显示的设置有效,但先前的不同尝试没有,并且被缓存了。所以,对于将来可能会到这里的任何人来说,答案是:
server {
server_name "~^(?<name>.+)\.net$";
return 301 $scheme://$name.com$request_uri;
}