Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以用Varnish重新格式化我的URL参数吗_Url_Parameters_Url Rewriting_Varnish - Fatal编程技术网

我可以用Varnish重新格式化我的URL参数吗

我可以用Varnish重新格式化我的URL参数吗,url,parameters,url-rewriting,varnish,Url,Parameters,Url Rewriting,Varnish,我有一个相对简单(我认为)的用例,但我找不到任何有人这样做的例子。我们在两个不同的应用程序前面使用Varnish作为缓存和反向代理,并希望使两者更加统一,因为它们都做类似的事情。我希望Varnish可以帮助重写如下所示的URL 分页的原始应用程序URL(获取前10项): 所需URL: http://myapplication.com/products/?paginate=1:10 这只是一个例子(最复杂的是它结合了两个参数),但在所有情况下,参数的输入值都保持不变,只是参数名称会改变 另一个例

我有一个相对简单(我认为)的用例,但我找不到任何有人这样做的例子。我们在两个不同的应用程序前面使用Varnish作为缓存和反向代理,并希望使两者更加统一,因为它们都做类似的事情。我希望Varnish可以帮助重写如下所示的URL

分页的原始应用程序URL(获取前10项):

所需URL:

http://myapplication.com/products/?paginate=1:10
这只是一个例子(最复杂的是它结合了两个参数),但在所有情况下,参数的输入值都保持不变,只是参数名称会改变

另一个例子是:

http://myapplication.com/search/?query=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字符串的其余部分做了大量的工作,但基本的都在那里。因此,如果有人想做类似的事情,这是一个很好的起点

http://myapplication.com/search/?q=something
if (req.url ~ "(.*)(id=)") {
        set req.url = regsub(req.url, "(feeds/[a-zA-Z]*/)(.*)([\?|&])(id=)([a-zA-Z0-9]*)(.*)", "\1\2\3byGuid=\5\6");
}