2017-12-27 421 views
1

我正在爲一個網站提供nginx作爲apache的代理。 我有重寫模塊的問題。nginx用URL重寫部分url? mark

http://example.com/foo/bar/url?someparam=1&otherparam=2

我需要從

/富/酒吧/ URL?someparam = 1 & otherparam = 2

/富/酒吧/ URL2重寫?someparam = 1 & otherparam = 2

我發現它有問題,因爲它不是/foo/bar/url/someparam,但它只是文本的一部分,我需要在動態url中重寫。

我正在嘗試: rewrite ^(.*)url(.*)$ $1url2$2;但我得到了錯誤500。

我該怎麼做?

回答

0

在您的rewrite語句中,新URI也與正則表達式模式匹配。這將導致以500響應結束的重定向循環。

您需要使正則表達式更加具體,以便新的URI不匹配。

另外,nginx在處理rewrite語句時使用規範化URI,該語句不包括?及其後的查詢字符串。

rewrite ^(.*)url$ $1url1; 

rewrite指令將自動附加在原有的URI任何?和查詢字符串:那麼如下的語句可以簡化。

查看this document瞭解更多。

這個URI