nginx重定向特定域

时间:2015-04-16 04:19:45

标签: nginx

我想重定向来自:

的流量
     http://demo.foo.com/a.png
to   http://demo.bar.com/a.png

有一点需要注意,foo.combar.com都是同一个框。因此,我需要指定仅针对foo.com流量进行重定向,以避免bar.com流量上的重定向循环。

我试过了:

server {
  server_name  demo.foo.com;
  return       301 $scheme://demo.bar.com$request_uri;
}

等待一分钟才能生效......这看起来很有希望:

curl -I http://demo.foo.com

301出现了预期。但是,有两个问题:

1)正在运行curl -I http://demo.bar.com并返回301重定向到demo.bar.com(因此我的server_name过滤器无法正常工作)
2)再过几分钟(~2-3)后,两个curl命令都停止工作,并返回503 Unavailable消息(这可能是由于#1引起的重定向循环)

1 个答案:

答案 0 :(得分:1)

我们正在使用这样的构建:

server {
   ...

   server_name demo.foo.com demo.bar.com;

   if ($http_host = "demo.foo.com") {
      rewrite ^ http://demo.bar.com:$server_port$request_uri permanent;
   }

   ...
}