2013-03-10 69 views
0

爲什麼在地球上這種不工作時,我的所有其他URL重寫工作完美:Nginx的正則表達式URL重寫不工作

rewrite "^/search/?\?q(.+)$" /search.php?q$1 break; 

我沒有重啓nginx的和所有的。

+0

您的網址如何排列?預期的結果是什麼? – 2013-03-10 14:25:29

+0

我試圖改變'搜索?q =任何'或'搜索/?q =無論'到'search.php?q =無論' – Alasdair 2013-03-10 14:30:34

+0

這應該工作。你有什麼錯誤?另外,請用'\ 1'代替'$ 1'作爲替換 – 2013-03-10 14:35:01

回答

2

重寫僅適用於uri路徑。您不需要重寫查詢字符串部分,因爲默認情況下它會自動附加到新的url。

rewrite /search /search.php break; 

例如,/ search?q = something會寫入/search.php?q=something。

查看http://wiki.nginx.org/HttpRewriteModule#rewrite瞭解更多詳情。下面這行代表您的問題

此外,重寫只能在路徑上運行,而不是參數。