【发布时间】:2013-03-05 03:23:13
【问题描述】:
我想从 varnish 中的 url 中去除值,因此我可以根据 url 采取不同的操作,例如:
网址:/product/123/price/available。
我想将其转换为 /products?id=123&sort=price&available=true
我还希望能够(如果可能的话)在请求标头上设置值,因此我可以执行以下操作,而不是传递 URL 上的所有参数:
/products?id=123&sort=price
- 带有标题:x-show-available-only: true
我很欣赏第二个例子看起来有点奇怪,但这样我们可以将新参数传回我们的旧应用程序,并确保没有任何新参数干扰当前参数 - 我们只需通过标题读取新参数,直到我们将所有功能迁移到我们的新平台。
我确定这是一个正则表达式,但不知道该怎么做。
【问题讨论】:
-
在发布答案之前,我是否正确地认为正在从一个应用程序(使用旧的 url 方案)转移到一个新的应用程序(使用新方案),并且这两个应用程序都将运行一边- 并排一会儿?您是否要在两个应用程序中生成新的 URL 方案,但将访问旧应用程序的 URL 的请求重写为旧格式?
-
是的,这很准确!我们将立即引入一些新功能,然后在新功能可用时迁移部分应用程序。
-
因此 - stage1,旧网址和新网址,都转到新旧应用程序。第 2 阶段,一旦从应用程序中删除所有对旧网址的引用,我们将为旧网址(用于书签、链接等)实施重定向。第 3 阶段,一旦完全迁移到新应用程序,我们将不再使用旧的 url 架构,我们将删除所有重写规则。我希望这能让它更清楚。谢谢
标签: regex url rest varnish legacy