我已经配置了我的第一个 nginx 服务器,我必须将 subdomain1.domain.com、subdomain2.domain.com 和其他一些重定向到 domain.com
我搜索了很多有关 nginx 重写的内容,但没有找到任何有用的内容。谢谢!
答案1
Nginx 仅知道与服务器块中的匹配的(子)域server_name
。如果您设置了一个“默认”服务器块,则对任何其他(子)域的请求最终都会进入“默认”服务器块。
因此,您需要创建一个与您感兴趣的子域匹配的新服务器块。
server{
server_name subdomain1.domain.com subdomain2.domain.com;
}
如果您有大量子域名,您还可以使用正则表达式匹配或通配符server_name
(例如)。*.domain.com
在该服务器块中,添加您的重写(本质上等同于,任何命中这些子域的内容都应重写到我的主域)。
rewrite ^ http://domain.com permanent;
把所有这些放在一起,你会得到:
server{
server_name subdomain1.domain.com subdomain2.domain.com;
rewrite ^ http://domain.com permanent;
}
您可以更改http://domain.com
为http://domain.com$request_uri
以保留路径。