我是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'开头的所有内容,我真的很困惑为什么会发生这种情况,有什么想法吗?
提前致谢。
答案 0 :(得分:3)
Nginx重写通常不会“查看”查询字符串作为URI的一部分,这就是为什么你的现有重写不起作用 - 对于Nginx它总是^/abc\.php$
是否有查询字符串。 / p>
相反,我会尝试这个(改编自the documentation):
if ($args !~ param=value) {
rewrite ^/abc\.php$ http://domain2.com permanent;
}
但要注意if is evil。