Запрет поиска: / в robots.txt

Я хочу искать Disallow: / в robots.txt доменов.
Я написал регулярное выражение, но это не работает.

if(preg_match("!Disallow:\s*/\s\r\n!i",$string,$disallow_char))
{
print_r($disallow_char);
}

Ниже приведены два теста.
1)

User-agent: *
Disallow: /

2)

User-agent: *
Disallow: /product/generate_pdf/40
Disallow: /news/
Disallow: /news/bollards
Disallow: /product/generate_pdf/44
Disallow: /
Disallow: /page_management/insert
Disallow: /glossary/ajax_call/update_words

Он должен вывести true для обоих случаев.

-1

Решение

Вы должны утверждать, что следует либо последовательность новой строки, либо конец строки:

echo preg_match('~Disallow:\h*/(?:\R|$)~i', $string)

объяснение:

Disallow:      # 'Disallow:'
\h*            # horizontal whitespace (0 or more times)
/              # '/'
(?:            # group, but do not capture:
\R           #   '\R' (any Unicode newline sequence)
|             #  OR
$            #   before an optional \n, and the end of the string
)              # end of grouping
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]