我试图将地址名称从网址路径重写为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上做同样的事情?
答案 0 :(得分:6)
尝试类似:
rewrite ^/hotels/([^/]+)/?$ /?d=$1 permanent;
nginx
URI始终具有前导/
。 ?
和查询字符串不是规范化URI的一部分,但rewrite
指令会自动附加任何参数,除非有尾随?
。
有关详细信息,请参阅this document。