Watchguard防火墙WebBlocker多域的正则expression式?

我很确定这是一个真正的正则expression式问题,所以如果你想跳过背景,你可以跳到REGEX QUESTION。

我们的主要防火墙是运行Fireware XTM v11.2的Watchguard X750e。 我们正在使用webblocker来阻止大部分的类别,我允许需要的网站出现。 一些网站很容易添加为例外,如潘多拉电台。 那只是一个与“ padnora.com/ ”模式匹配的例外模式。 所有来自pandora.com上的stream量都是允许的。

我在更复杂的域中遇到麻烦,这些域从基本域引用内容。 我们将以GrooveShark为例。 如果您访问http://grooveshark.com/并查看页面源代码,则会看到hrefs指向gs-cdn.net以及grooveshar.com。 所以在grooveshark.com/上添加一个WebBlocker例外是无效的,我必须添加第二个允许gs-cdn.net/的规则。

我看到WebBlocker允许使用正则expression式规则,所以在这种情况下我想要做的是创build一个正则expression式规则,允许所有需要的域的stream量。

REGEX问题:我想尝试一个匹配grooveshark.com/gs-cdn.net/的正则expression式。 如果有人可以帮我写这个正则expression式,我会很感激。

以下是该部分WatchGuard文档中的内容:正则expression式

正则expression式匹配使用Perl兼容的正则expression式进行匹配。 例如,。[onc] [eor] [gtm]按照顺序与.org,.net,.com或每个括号中的一个字母的任何其他三个字母组合相匹配。 请务必删除前导“http://”支持shell脚本中使用的通配符。 例如,“(www)?watchguard。[com | org | net]”将与URLpath匹配,包括www.watchguard.com,www.watchguard.net和www.watchguard.org。

谢谢大家!

我在Watchguard上也做了同样的事情。

这里是我使用的正则expression式,编辑适合您正在使用的域。

(?i)^([^./]+\.)*(grooveshark\.com|gs-cdn\.net)(?![^/]) 

我不确定你是否打算把你的问题中的某个问题留下,或者只是一个错字。 如果他们有时候会使用grooveshar.com,那么你需要这样做:

 (?i)^([^./]+\.)*(grooveshark?\.com|gs-cdn\.net)(?![^/]) 

这个? k之后就没有必要了。

我强烈推荐The Regex Coach来帮助你构build正则expression式。

我也强烈推荐http://www.regular-expressions.info/作为参考。

别。 向您的网页filter添加多个“允许”规则没有任何问题,您的后继将感谢您的可读性。 一些域允许规则就足够了。