2013-03-17 54 views
0

嗨,所以我需要重寫此:麻煩nginx的重寫

www.site.com/foo.php?var1=value1&var2=value2 

這樣:

www.site.com/value2 

我嘗試這樣做:

location /value2 { 
    rewrite ^/value2/?$ /foo.php?var1=value1&var2=value2; 
} 

而這個變種似乎工作,但重點是變量沒有通過...

和這個:

location /foo.php { 
if ($arg_var2 ~ "value2") { 
     rewrite^http://site.com/$arg_var2? permanent; 
    } 
} 

但它沒有工作...任何想法?在此先感謝

+1

這個問題並不清楚。它說重寫爲「/ const2」。但你試圖從「/ const2」重寫?另外你的失敗測試的實際輸出是什麼? – 2013-03-18 03:58:22

+0

重點是變量不通過。 – 2013-03-18 09:10:17

+0

是www.site.com/foo.php?var1=const1&var2=const2中的const2,與www.site.com/const2中的一樣?如果它是一個常量,爲什麼你把它變成一個變量? – Pixou 2013-03-18 11:56:57

回答

0

如果值1和值2是不變的,你可以使用:

if ($args ~ "var1=value1&var2=value2") { 
      set $args/; 
      rewrite ^.*$ /const2 permanent; 
    } 

另一種解決方案是一些更靈活,其建議立即進行刪除與其他值正常工作,但我沒做工作,正則表達式(這一個不工作,但它不應該太遠):

location/{ 
    rewrite ^/foo.php.*var2=.*$ /$2 redirect; 
} 
+0

好的,但是我應該在什麼地方使用第一個解決方案? – 2013-04-18 08:39:02