Pin*_*uin 2 parameters url url-rewriting varnish
我有一个相对简单的(我认为)用例,但我找不到任何有人这样做的例子.我们在两个不同的应用程序前面使用Varnish作为缓存和反向代理,并希望在两者之间做一些事情,因为它们都做类似的事情.我希望Varnish可以帮助重写URL,如下所示.
分页的原始应用程序URL(获取前10项):
http://myapplication.com/products/?startindex=1&endindex=10
Run Code Online (Sandbox Code Playgroud)
所需网址:
http://myapplication.com/products/?paginate=1:10
Run Code Online (Sandbox Code Playgroud)
这只是一个例子(最复杂的因为它结合了两个参数),但在所有情况下参数的输入值都保持不变,只是参数名称会改变.
另一个例子是:
http://myapplication.com/search/?query=something
Run Code Online (Sandbox Code Playgroud)
至:
http://myapplication.com/search/?q=something
Run Code Online (Sandbox Code Playgroud)
有没有人有清漆的经验,以及如何做到这一点?
谢谢
显然你可以.答案是regsub是你的朋友.
例如:
if (req.url ~ "(.*)(id=)") {
set req.url = regsub(req.url, "(feeds/[a-zA-Z]*/)(.*)([\?|&])(id=)([a-zA-Z0-9]*)(.*)", "\1\2\3byGuid=\5\6");
}
Run Code Online (Sandbox Code Playgroud)
这会将传入的"id"参数转换为后端的"byGuid"参数.t还用URL字符串的其余部分做了很多东西,但基础知识就在那里.因此,如果有人想做类似的事情,这是一个很好的起点.
| 归档时间: |
|
| 查看次数: |
3611 次 |
| 最近记录: |