如何使用NGINX将mydomain.com
和任何子域*.mydomain.com
重定向到www.adifferentdomain.com
?
答案 0 :(得分:238)
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;
}
答案 1 :(得分:22)
server {
server_name .mydomain.com;
return 301 http://www.adifferentdomain.com$request_uri;
}
http://wiki.nginx.org/HttpRewriteModule#return
和
答案 2 :(得分:12)
如果可以return
,为什么要使用重写模块?从技术上讲,return
是重写模块的一部分you can read here,但这个片段更容易阅读imho。
server {
server_name .domain.com;
return 302 $scheme://forwarded-domain.com;
}
你也可以给它301重定向。
答案 3 :(得分:10)
这应该通过HTTPRewriteModule工作。
从www.example.com到example.com的重写示例:
server {
server_name www.example.com;
rewrite ^ http://example.com$request_uri? permanent;
}
答案 4 :(得分:7)
如果您想将“domain1.com”的请求重定向到“domain2.com”,您可以创建一个如下所示的服务器块:
server {
listen 80;
server_name domain1.com;
return 301 $scheme://domain2.com$request_uri;
}
答案 5 :(得分:1)
您可以简单地在服务器{}块中编写一个if条件:
server {
if ($host = mydomain.com) {
return 301 http://www.adifferentdomain.com;
}
}
答案 6 :(得分:0)
临时重定向
rewrite ^ http://www.RedirectToThisDomain.com$request_uri? redirect;
永久重定向
rewrite ^ http://www.RedirectToThisDomain.com$request_uri? permanent;
在特定站点的nginx配置文件中:
server {
server_name www.example.com;
rewrite ^ http://www.RedictToThisDomain.com$request_uri? redirect;
}
答案 7 :(得分:0)
我正在将这些代码用于我的网站
server {
listen 80;
listen 443;
server_name .domain.com;
return 301 $scheme://newdomain.com$request_uri;
}