如何使用NGINXredirect到不同的域名?

如何使用NGINX将mydomain.com和任何子域*.mydomain.comredirect到www.adifferentdomain.com?

server_name支持使用.mydomain.com语法的后缀匹配:

 server { server_name .mydomain.com; rewrite ^ http://www.adifferentdomain.com$request_uri? permanent; } 

或任何版本0.9.1或更高版本:

 server { server_name .mydomain.com; return 301 http://www.adifferentdomain.com$request_uri; } 
 server { server_name .mydomain.com; return 301 http://www.adifferentdomain.com$request_uri; } 

http://wiki.nginx.org/HttpRewriteModule#return

http://wiki.nginx.org/Pitfalls#Taxing_Rewrites

这应该通过HTTPRewriteModule工作。

从www.example.com重写为example.com的示例:

 server { server_name www.example.com; rewrite ^ http://example.com$request_uri? permanent; } 

为什么使用重写模块,如果你可以做return ? 从技术上讲, return是重写模块的一部分, 你可以在这里阅读,但这个片段更容易阅读imho。

 server { server_name .domain.com; return 302 $scheme://forwarded-domain.com; } 

你也可以给它一个301redirect。

如果您想要将“domain1.com”的请求redirect到“domain2.com”,则可以创build一个如下所示的服务器块:

 server { listen 80; server_name domain1.com; return 301 $scheme://domain2.com$request_uri; }