假设我有一个名为 xyz.co 的网站,我还有其他具有相同前缀的域名,例如 xyz.com、xyz.it、xyz.co.it
现在,nginx 可以在端口 80 的 nginx.conf 中与 server_name xyz.co 正常工作,我希望所有其他域都重定向到 xyz.co,我也希望上述的 www.* 版本重定向到 xyz.co 。我怎样才能得到这个?这是 nginx web 服务器级别的变化吗?或者我需要在 DNS 中进行此更改?
更新:我在nginx.conf
中尝试过这个,但没有用...
server
{
listen 80;
server_name xyz.co xyz.com, xyz.it, xyz.co.it;
rewrite ^/(.*) http://xyz.co permanent;
}
我首先尝试在 ServerFault 中发布此问题,但没有响应 - https://serverfault.com/questions/453472/nginx-domain-name-redirects
请您参考如下方法:
为所有需要重定向的域名添加一个服务器 block 。像这样:
server {
listen 80;
server_name xyz.com, xyz.it, xyz.co.it;
rewrite ^ http://xyz.co$request_uri permanent;
}
以及 xyz.co 域的另一个服务器 block :
server {
listen 80;
server_name xyz.co;
#other settings
}
这样,当您转到需要重定向的域名之一时,nginx 将简单地重定向到 xyz.co 并移至另一个服务器 block ,您可以在其中添加所有设置(根文件夹、位置 block 等)