nginx重写url路径到param

时间:2013-10-30 15:53:56

标签: nginx

现在我有一个这种类型的网址:

test.com/p/felix?order=1

我想将其重定向到这个:

test.com/user/view/info?uname=felix&order=1

也许没有订单参数

(test.com/p/felix to test.com/user/view/info?uname=felix)

现在我的nginx配置是:

if ($request_uri ~ "^\/p\/(.*)\?(.*)$"){
        rewrite "^/p/(.*)?(.*)$" "/user/view/info?uname=$1&$2" break;
}
if ($request_uri ~ "^\/p\/(.*)$"){
            rewrite "^/p/(.*)$" "/user/view/info?uname=$1" break;
}

现在有效。但我想将这两个配置合并到一个配置中?

你能告诉我怎么做,谢谢:)

1 个答案:

答案 0 :(得分:0)

鉴于你的问题的变化表明它现在有效,如何将其合并为一个:

if ($request_uri ~ "^\/p\/(.*)\?(.*)$") {
    if ($2 = '') {
        rewrite "^/p/(.*)$" "/user/view/info?uname=$1" break;
    } else {
        rewrite "^/p/(.*)?(.*)$" "/user/view/info?uname=$1&$2" break;
    }
}