帮助重定向nginx中的特定页面

时间:2010-10-31 14:25:42

标签: url-rewriting nginx

过去4个小时我一直试图这样做,到处搜寻。如果你可以帮我解决nginx重写规则,那将会很棒。

我正在尝试暂时将hxxp:// siteA / [dir]重定向到hxxp:// siteB / [dir],但hxxp:// siteA /?page = 4除外,我想重定向到hxxp://站点B /?页= 343

以下是我的规则

server {
    listen 80;
    server_name siteA;
    rewrite ^/?page=4$ http://siteB/?page=343 redirect;
    rewrite  ^/(.*)$  http://siteB/$1  redirect;
}

但它似乎将hxxp:// siteA /?page = 4重定向到hxxp:// siteB /?page = 4,从而忽略了第一条规则。

我已将http更改为hxxp,因为我不允许在此处发布链接。

1 个答案:

答案 0 :(得分:1)

为Web服务器编写重写规则时遇到的一个常见问题是假设查询参数是脚本路径的一部分。

尝试在“主要”重写规则之前将查询参数与下面的规则匹配:

if ($args ~ page=4){
  rewrite ^ http://siteB.com/?page=343;
}