【发布时间】:2016-12-06 09:56:09
【问题描述】:
有没有办法在 varnish 上拆分 url 或用它更改 url 结构。
我知道 regsub 或 regsuball 支持这一点,但在我的情况下它们还不够。
我想更改一个 url 并将其重定向到另一个域。
例如:
http://aaa.test.com/sport/99244-article-hyun-jun-suku-kapa.html?
重定向到下面的地址
http://m.test.com/article-hyun-jun-suku-kapa-sport-99244/
我在 vcl 文件中添加了一些行来做到这一点
set req.http.xrul=regsuball(req.url,".html",""); "clear .html"
set req.http.xrul=regsub(req.http.xrul,"(\d+)","\1"); find numbers --article ID =99244
我可以用
去掉文章IDset req.http.xrul=regsub(req.http.xrul,"(\d+)","");
但不能只获取文章 ID
set req.http.xrul=regsub(req.http.xrul,"(\d+)","\1"); or any other method
varnish 是否支持用“-”模式分割 url,因此我可以重新设计 url?或者我们可以只获取regsub的articleID吗?
【问题讨论】:
-
尝试不删除扩展名:
set req.http.xrul=regsub(req.http.xrul, "/sport/(\d+)-(.*-)([^-]+)\.", "/\2sport-\1.")
标签: regex url-redirection varnish regsub