如何使用Nginx将mydomain.example
及其任何子域名*.mydomain.example
重定向到www.adifferentdomain.example
?
server_name通过.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;
}
server {
server_name .mydomain.example;
return 301 http://www.adifferentdomain.example$request_uri;
}
http://wiki.nginx.org/HttpRewriteModule#return
和
如果可以使用return
,为什么要使用重写模块?严格来说,return
是重写模块的一部分,你可以在这里阅读相关信息,但是我认为这个片段更容易阅读。
server {
server_name .domain.com;
return 302 $scheme://forwarded-domain.com;
}
你还可以给它进行301重定向。
return 302 $scheme://forwarded-domain.com$request_uri;
。 - Robin van Baalen我在我的网站上使用这段代码
server {
listen 80;
listen 443;
server_name .domain.example;
return 301 $scheme://newdomain.example$request_uri;
}
$scheme
可能有点值得商榷,但另一方面它涵盖了本地开发/私有网络的情况。 - Kirill Titov你可以通过HTTPRewriteModule实现该功能。
将 www.example.com
重写为 example.com 的示例:
server {
server_name www.example.com;
rewrite ^ http://example.com$request_uri? permanent;
}
server_name example.com www.example.com;
。 - citruspi如果你想要将对domain1.example
的请求重定向到domain2.example
,你可以创建一个像这样的服务器块:
server {
listen 80;
server_name domain1.example;
return 301 $scheme://domain2.example$request_uri;
}
listen 443;
- Rafik Farhad@RafikFarhad 'listen 443 ssl;'
监听443端口,启用SSL加密。
- pbiesserver {
if ($host = mydomain.example) {
return 301 http://www.adifferentdomain.example;
}
}
临时重定向
rewrite ^ http://www.RedirectToThisDomain.example$request_uri? redirect;
永久重定向
rewrite ^ http://www.RedirectToThisDomain.example$request_uri? permanent;
server {
server_name www.example.com;
rewrite ^ http://www.RedictToThisDomain.example$request_uri? redirect;
}
listen
指令默认为80端口。一般情况下,实际情况比这更加复杂;有关更多详细信息,请参阅nginx配置文档。 - Yitz?
)在句末的作用是什么? - Dan Dascalescurewrite
和return 301 $scheme://www.adifferentdomain.com$request_uri;
之间的区别是什么? - Dan Dascalescu$request_uri
已经包含了查询字符串,所以不需要再次附加它。return 301
语法较新,并且两种方法之间行为上没有区别,但在我最初回答这个问题时,许多发行版没有必需版本,因此我选择了更安全的语法。 - kolbyjack