NGinx域名重定向

3
假设我的网站名为xyz.co,我还有其他具有相同前缀的域名,如xyz.com、xyz.it、xyz.co.it。
现在,在nginx.conf文件中使用server_name xyz.co的端口80,nginx可以正常工作。我希望所有其他域名都重定向到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

1个回答

5

为需要重定向的所有域名添加一个服务器块,例如:

server {
    listen 80;
    server_name xyz.com, xyz.it, xyz.co.it;
    rewrite ^ http://xyz.co$request_uri permanent;
}

还需要为 xyz.co 域名配置另一个服务器块:

server {
    listen 80;
    server_name xyz.co;

    #other settings
}

这样当你访问需要重定向的域名时,nginx将简单地重定向到xyz.co并进入另一个服务器块,在那里你可以添加所有设置(根目录、位置块等)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接