gpt4 book ai didi

regex - 用于查找将由Varnish缓存的域的正则表达式

转载 作者:行者123 更新时间:2023-12-03 17:47:05 24 4
gpt4 key购买 nike

我在这里问这个问题,是因为我认为这不是实际的 Varnish 问题,而是更多的正则表达式问题。

我基本上想做的是定义一个 Varnish 将要缓存的域的列表。已经给出了答案,但是我想使用另一种方法。

Varnish: cache only specific domain

现在,此答案中使用的代码如下:

sub vcl_recv {
# dont cache foo.com or bar.com - optional www
if (req.http.host ~ "(www)?\.(foo|bar)\.com") {
pass;
}
# cache foobar.com - optional www
if ( req.http.host ~ "(www)?\.foobar\.com" ) {
lookup;
}
}

现在我想要的有点不同。我使用不同的TLD命名,但是我只想缓存该域的非www版本。

因此,只有mydomain.com或myotherdomain.nl或yadomain.net

任何其他子域都可以传递到后端。

最佳答案

如果我正确地阅读了您的问题,那么您的列表中包含同一网站的多个版本,因此www.foobar.com和/或foobar.com都只与您匹配foobar.com

如果是这样,则需要使用(?<!www)进行反向引用。因此,仅与没有前面的www的域匹配的搜索将是(?<!www\.)((?:[^.\s]+)\.(?:com|net|nl))
希望能有所帮助

编辑
(?<!www\.)((?:[^.\s]+)\.(?:\w{2,3}))(如果域未知)

关于regex - 用于查找将由Varnish缓存的域的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8569319/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com