2016-08-25 2 views
0

Ich versuche, eine Zeichenfolge zu überprüfen, ob es eine Liste von Domains übereinstimmt, aber ich folgende Fehlermeldung erhalten:nginx if-Anweisung String-Check für Domain

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")" 

ich folgende Aussage bin mit:

if ($rdns_hostname ~* (*\.duckduckgo\.com|*\.googlebot\.com|*\.crawl\.yahoo\.net|*\.search\.msn\.com|*\.crawl\.baidu.com)) { 
    ... 
} 
+0

Wofür ist es? –

Antwort

1

Versuchen Sie dies als Muster verwenden stattdessen: .*\.duckduckgo\.com|.*\.googlebot\.com|.*\.crawl\.yahoo\.net|.*\.search\.msn\.com|.*\.crawl\.baidu.com

mit regulären Ausdrücken, * eine beliebige Anzahl (einschließlich keine) des vorangegangenen ele in diesem Fall ist .. A . passt auf jedes einzelne Zeichen, weshalb Sie die Punkte in der URL mit einem umgekehrten Schrägstrich umgehen, sodass sie als Literal . interpretiert werden, anstatt mit einem beliebigen Zeichen übereinzustimmen.

Verwandte Themen