我可以用清漆重新格式化我的URL参数吗
-
30-09-2019 - |
题
我有一个相对简单的用例(我认为)用例,但是找不到任何人这样做的示例。我们在两个不同的应用程序面前使用Varnish作为缓存和反向代理,并希望使两者之间的情况更加统一,因为它们都做了类似的事情。我希望Varnish可以帮助重写URL,如下所示。
分页的原始应用URL(获取前10个项目):
http://myapplication.com/products/?startindex=1&endindex=10
所需的URL:
http://myapplication.com/products/?paginate=1:10
这只是一个示例(最复杂的是,因为它结合了两个参数),但是在所有情况下,参数的输入值保持不变,只是参数名称将更改。
另一个例子是:
http://myapplication.com/search/?query=something
到:
http://myapplication.com/search/?q=something
有谁在清漆上有任何经验,如何做到这一点?
谢谢
解决方案
显然你可以。答案是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");
}
这将将“ ID”参数转换为后端的“ Byguid”参数。 t还在其余的URL字符串中做了一堆事情,但基本知识在那里。因此,如果有人想做类似的事情,这是一个很好的起点。
不隶属于 StackOverflow