使用Nginx将旧域重定向到新域,并使用相同的子域和URI

时间:2018-08-01 16:36:06

标签: nginx

我们有两个指向同一服务器的域。我们最近在品牌上加了一个商标,因此我们希望拥有它,以便URL从old_domain.com更改为new_domain.com。

我也想拥有它,以便也使用用户最初输入的子域和URI。

例如-

https://beta.old_domain.com/my_profile

redirects to

https://beta.new_domain.com/my_profile

我尝试了几种解决方案,但正在努力使其正常工作。我是最新的-

/etc/nginx/sites-available/old_domain.com

server {
  listen 80;
  listen 443 ssl;
  server_name old_domain.com;

  if ($host ~ (.*)\.old_domain\.com(.*)) {
    set $subdomain $1;
    return 301 $subdomain.new_domain.com$request_uri;
  }
}

1 个答案:

答案 0 :(得分:1)

我通过创建两个不同的server块来做到这一点,一个用于主域,另一个用于重定向子域上的请求:

server {
    server_name old-domain.com;
    return 301 $scheme://new-domain.com$request_uri;
}

server {
    server_name ~^(?<name>\w+)\.old-domain\.com$;
    return 301 $scheme://$name.new-domain.com/;
}