将主机重写到其他主机有一些复杂性

我在domiy.com上有一个网站,现在我将名称更改为namedar.com。 我想301redirectdomiy.com(或nametyper.com)的所有请求,以便他们返回具有请求URI完整的namedar.com。

我已经尝试将所有内容redirect到namedar.com,但是当请求到达named.com时会导致redirect循环。

rewrite ^ $scheme://nametyper.com$request_uri permanent; # Doesn't work 

我还想保持这样的configuration,使得所有'www'请求都被redirect到非www版本。

我的nginx.conf看起来像这样:

 server { server_name namedar.com www.namedar.com domiy.com www.domiy.com nametyper.com www.nametyper.com; # Remove all 'www.' prefixes. if ($host ~* www\.(.*)) { set $host_without_www $1; rewrite ^(.*)$ $scheme://$host_without_www$1 permanent; } } 

我如何写一个rewrite指令来完成这个?

请让我分两步走

第1步:www到非www

服务器{
   server_name www.domainname.com;
  返回301 $ scheme://domainname.com$request_uri;
 }

服务器{
   server_name domainname.com;
   #常规的块和指令
 }

第2步:first_domain.com到second_domain.com

服务器{
   server_name first_domain.com www.first_domain.com;
  返回301 $ scheme://second_domain.com$request_uri;
 }

您可以修改上述步骤,使其适用于任何数量的域。 而且,您可以将这两者结合在一起。

顺便说一句,在Nginx, 如果被认为是邪恶的 。