Skip to main content
 首页 » 编程设计

redirect之NGinx 域名重定向

2024年08月06日11Leo_wl

假设我有一个名为 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 等)