Nginx从一个域重定向到另一个域?

时间:2013-05-07 08:48:01

标签: nginx

我正在迁移同一个应用程序,但是迁移到另一个域。

对于旧域名,我的路由为:

http://app.example.com/app/users/sign_in?query=hello

我希望将其重定向到另一个域,省略app部分:

http://app.newexample.com/users/sign_in?query=hello

我尝试过:

server {
  ...
  location /app {
    rewrite ^$scheme://app.sparkon.com/app(/.*)$ $1 last;
  }
  ...
}

我不行。怎么做到这一点?

3 个答案:

答案 0 :(得分:2)

大约一年前我遇到过这个问题,并花了很长时间寻找解决方案。我发现并使用了这个:

server {
    listen 80;
    server_name example.com app.example.com;
    rewrite ^/app(.*)$ http://app.newexample.com$1 permanent;
}

server {
    listen 80;
    server_name app.newexample.com;
    # config for primary domain here
}

来自this link。相信他们。

答案 1 :(得分:1)

不要将方案置于重写模式中:

server {
    server_name app.example.com;
    location /app/ {
        rewrite ^/app/(.*)$ http://app.newexample.com/$1;
    }
}

BRG。

答案 2 :(得分:1)

我更喜欢这种方法,因为它不需要使用重写,我读到的东西之一是避免过多的好处,因为它需要nginx引擎进行更多的处理。

  location ~ /app/(.*) {
    return 301 $scheme://app.sparkon.com/$1;  
  }