nginx重写问题

时间:2010-10-25 12:08:49

标签: nginx rewrite

我是nginx的新手,我在这里遇到了重写问题:

我想永久地将http://domain1.com/abc.php重定向到http://domain2.com

但我想保留http://domain1.com/abc.php?param=value,我已经尝试过了

rewrite ^/abc\.php$ http://domain2.com last;

适用于http://domain1.com/abc.php,不幸的是它重写了以'/abc.php'开头的所有内容,我真的很困惑为什么会发生这种情况,有什么想法吗?

提前致谢。

1 个答案:

答案 0 :(得分:3)

Nginx重写通常不会“查看”查询字符串作为URI的一部分,这就是为什么你的现有重写不起作用 - 对于Nginx它总是^/abc\.php$是否有查询字符串。 / p>

相反,我会尝试这个(改编自the documentation):

if ($args !~ param=value) {
  rewrite ^/abc\.php$ http://domain2.com permanent;
} 

但要注意if is evil