怎样在 NGINX 中将位置重定向到另一个域

当您更改网站域时,您需要将旧 URL 重定向到它们的新位置。 以下是怎样将位置重定向到 NGINX 中的另一个域。 您还可以使用这些步骤将路径重定向到另一个域,将文件夹重定向到另一个域,将 301 所有请求重定向到另一个域。

怎样在 NGINX 中将位置重定向到另一个域

以下是在 NGINX 中将位置重定向到另一个域的步骤。

1.打开NGINX配置文件

如果你使用的是NGINX的主配置文件nginx.conf,没有虚拟主机,那么运行以下命令

$ sudo vi /etc/nginx/nginx.conf

如果您为您的网站(例如 www.mysite.com)配置了单独的虚拟主机,例如 /etc/nginx/sites-enabled/mysite.conf 然后使用以下命令打开它

$ sudo vi /etc/nginx/sites-enabled/mysite.conf

奖励阅读:怎样在 Ubuntu 中更改 NGINX 端口号

2. 将位置重定向到另一个域

假设您想将 /product 重定向到新域 (www.newsite.com),然后在您的服务器块中添加以下位置块

server{
...
    location /product {
        rewrite ^/product(.*)$ https://www.newsite.com/$1 redirect;
    }
...
}

下面我们详细看一下上面的位置块

改写 —— 改写 命令告诉 NGINX 将一个或多个匹配给定模式(例如 /product)的 URL 更改为另一个 URL。

^/产品 – 以 /product 开头的 URL 路径。 您可以根据需要将其更改为另一个 URL。

(.*) – 匹配一个或多个字符。 在我们的例子中,它意味着任何跟在 /product 之后的东西

$ – 字符串结尾

1 美元 – /product 之后的 URL 部分

重定向 – 告诉 NGINX 重定向到另一个 URL。 它也可以是新域、子域、子目录甚至 URL。

奖励阅读:怎样将 NGINX Web Root 移动到新位置

3.重启NGINX

运行以下命令以检查更新的配置文件的语法。

$ sudo nginx -t

如果没有错误,请运行以下命令重新启动 NGINX 服务器。

$ sudo service nginx reload #debian/ubuntu
$ systemctl restart nginx #redhat/centos

就是这样! 现在 NGINX 会将所有最初发送到 www.mysite.com/product 的请求重定向到 www.newsite.com。 为了 example, www.mysite.com/product/shoes 将被重定向到 www.newsite.com/shoes

顺便说一句,如果您想创建图表和仪表板来监控您的业务或网站,您可以尝试 BYNSS。 我们提供 14 天的免费试用。