如何使用Nginx将mydomain.example和任何子域*.mydomain.example重定向到www.adifferentdomain.example?
mydomain.example
*.mydomain.example
www.adifferentdomain.example
这应该通过HttpRewriteModule起作用。
示例:从www.example.com重写到example.com:
www.example.com
server { server_name www.example.com; rewrite ^ http://example.com$request_uri? permanent; }
服务器_名称支持使用.mydomain.example语法的后缀匹配:
.mydomain.example
server { server_name .mydomain.example; rewrite ^ http://www.adifferentdomain.example$request_uri? permanent; }
或在任何版本0.9.1或更高版本上:
server { server_name .mydomain.example; return 301 http://www.adifferentdomain.example$request_uri; }
为什么使用重写模块,如果你可以做return?从技术上讲,return作为你可以在这里阅读。是重写模块的一部分,但恕我直言,这个片段更容易阅读。
return
server { server_name .domain.com; return 302 $scheme://forwarded-domain.com; }
你也可以给它一个301重定向。
http://wiki.nginx.org/httprewritemodule#return.
和
http://wiki.nginx.org/pitfalls#taxing_rewrites.
如果要将对domain1.example的请求重定向到domain2.example,则可以创建如下所示的服务器块:
domain1.example
domain2.example
server { listen 80; server_name domain1.example; return 301 $scheme://domain2.example$request_uri; }
临时重定向
rewrite ^ http://www.RedirectToThisDomain.example$request_uri? redirect;
永久重定向
rewrite ^ http://www.RedirectToThisDomain.example$request_uri? permanent;
在特定站点的nginx配置文件中:
server { server_name www.example.com; rewrite ^ http://www.RedictToThisDomain.example$request_uri? redirect; }
您可以简单地在服务器{}块中编写一个if条件:
server { if ($host = mydomain.example) { return 301 http://www.adifferentdomain.example; } }
我在我的网站上使用这个代码
server { listen 80; listen 443; server_name .domain.example; return 301 $scheme://newdomain.example$request_uri; }