regex - Varnish :在替换字符串中使用来自正则表达式的匹配

标签 regex varnish varnish-vcl

嘿,我正在Varnish中努力解决以下问题

if (req.url ~ "/somepath/(.*)/saml/sp/metadata") {
        set req.backend = somebackend_https;
        set req.url = regsub(req.url, "/somepath/(.*)/saml/sp/metadata","$1/saml/sp/metadata");
        set req.http.host = regsub(req.http.host, "^(.*).(.*)", "somehost.nl");
        set req.proto = regsub(req.proto, "^HTTP", "^HTTPS");
        return (lookup);
}

如何从替换字符串中的(。*)获得匹配项?
我尝试了$ 1,\1似乎没有任何效果。我错过了什么吗?还是应该以其他方式解决这个问题?

我使用 Varnish 3。

已经预先感谢!

最佳答案

Redithion是正确的,它的\1。较早出现的配置中的另一条路线是我无法弄清楚这一点的原因:)

关于regex - Varnish :在替换字符串中使用来自正则表达式的匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34399405/

相关文章:

python - 通过正则表达式在 python 中过滤以某些字符(所有出现)结尾的文本

python - 为什么正则表达式函数总是弹出属性错误?

c#正则表达式问题

varnish - 动态添加或删除后端主机到 Varnish

mysql - Oracle 10g SQL 正则表达式

google-cloud-platform - 如何设置谷歌云负载均衡器以利用 Varnish 中的 http2 支持?

apache - Varnish :大师冥想

Varnishstat显示0(零)的命中率

varnish - 如何在varnish中调试VCL?

varnish - 修改Varnish默认文件后出现Err_Connection_Refused