如何使用 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
和
我正在为我的网站使用此代码
server {
listen 80;
listen 443;
server_name .domain.example;
return 301 $scheme://newdomain.example$request_uri;
}
如果可以做到
return
,为什么还要使用重写模块?从技术上讲,return
是重写模块的一部分,因为你可以在这里阅读,但恕我直言,这个片段更容易阅读。
server {
server_name .domain.com;
return 302 $scheme://forwarded-domain.com;
}
您还可以给它一个 301 重定向。
这应该通过 HTTPRewriteModule 工作。
示例从
www.example.com
重写为 example.com:
server {
server_name www.example.com;
rewrite ^ http://example.com$request_uri? permanent;
}
如果您想将
domain1.example
的请求重定向到 domain2.example
,您可以创建一个如下所示的服务器块:
server {
listen 80;
server_name domain1.example;
return 301 $scheme://domain2.example$request_uri;
}
您可以简单地在 server {} 块中编写 if 条件:
server {
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;
在特定站点的 Nginx 配置文件中:
server {
server_name www.example.com;
rewrite ^ http://www.RedictToThisDomain.example$request_uri? redirect;
}
刚刚开始使用 wordops,并且有一个用于电子邮件地址的短域名,我需要将其重定向到网站的主要长域名。我的两个域的 MX DNS 条目都指向交换服务器,但 Web 服务位于 DigitalOcean 上。 我最终做的是创建一个基本的 wordops html 站点,然后编辑 nginx conf 以专门重定向到长域名的 http 地址,然后重定向到 https。 这解决了我在 Firefox 等中的“警告”问题。这最终对我有用:
server {
listen 80;
listen 443;
server_name .shortname.com;
rewrite ^ http://stupidlongnamedomainname.com$request_uri? permanent;
}