我尝试检查字符串是否与域列表匹配;但是,我收到以下错误:
nginx: [emerg] pcre_compile() failed: nothing to repeat in "("*\.duckduckgo\.com|*\.googlebot\.com|*\.crawl\.yahoo\.net|*\.search\.msn\.com|*\.crawl\.baidu.com")" at "*\.googlebot\.com|*\.crawl\.yahoo\.net|*\.search\.msn\.com|*\.crawl\.baidu.com")"
我使用以下声明:
if ($rdns_hostname ~* (*\.duckduckgo\.com|*\.googlebot\.com|*\.crawl\.yahoo\.net|*\.search\.msn\.com|*\.crawl\.baidu.com)) {
...
}
答案 0 :(得分:1)
请尝试将此作为您的模式:.*\.duckduckgo\.com|.*\.googlebot\.com|.*\.crawl\.yahoo\.net|.*\.search\.msn\.com|.*\.crawl\.baidu.com
使用正则表达式,*
匹配前面元素的任何数字(包括无),在本例中为.
。 .
将匹配任何单个字符,这就是您使用反斜杠转义URL中句点的原因,以便将它们解释为文字.
而不是匹配任何字符。< / p>