2016-11-14 73 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

相关问题