2013-10-30 83 views
0

現在我有這種類型的URL:nginx的重寫URL路徑設置了一個param

test.com/p/felix?order=1

而且我想它重定向到這一個:

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

,也許有is no order param

(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; 
} 

它現在。但我想將這兩個配置合併爲一個配置?

你能告訴我該怎麼辦呢謝謝:)

回答

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; 
    } 
} 
+0

如果URL測試.com/p/felix request_url無法匹配它): – Felix