将url path参数写入nginx中的查询字符串参数

时间:2016-11-14 16:24:00

标签: nginx url-rewriting

我试图将地址名称从网址路径重写为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上做同样的事情?

1 个答案:

答案 0 :(得分:6)

尝试类似:

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

nginx URI始终具有前导/?和查询字符串不是规范化URI的一部分,但rewrite指令会自动附加任何参数,除非有尾随?

有关详细信息,请参阅this document