2016-11-14 103 views
1

我想重寫一個地址名從URL路徑到nginx查詢字符串。寫一個URL路徑參數到一個查詢字符串參數在nginx

我想ourdomain.com/hotels/london?some_key=value成爲ourdomain.com?d=london&some_key=value

我們與Apache正在做它 -

RewriteRule ^hotels/([^/]+)/?\??(.*)$ ?d=$1&$2 [QSA] 

我們目前正在做的HAProxy的(作爲反向代理) -

reqrep ^([^\ :]*)\ /hotels/([^/\ \?]+)/?\??([^\ ]*)(.*)$  \1\ /?d=\2&\3\4 

如何在nginx上做同樣的事情?

回答

5

嘗試類似:

rewrite ^/hotels/([^/]+)/?$ /?d=$1 permanent; 

nginx URI總是有一個領先的/?和查詢字符串不是規範化URI的一部分,但rewrite指令會自動附加任何參數,除非存在尾隨?。詳情請參閱this document