2015-07-20 2 views
1

Мне нужно правило robots.txt Disallow, которое предотвращает использование искателей из следующих тегов шаблонов, таких как теги <script type="text/template">.Предотвращение сканеров от чтения шаблонов подчеркивания

При обходе URL, я получаю ошибки для выглядит как:

404 GET /foo/bar/<%=%20 getPublicUrl %20% 

Э.Г.

<script type="text/template"> 
    <a href="<%= my_var %>" target="_blank">Test</a> 
</script> 

Заблокировано что-то вроде:

Disallow: <%*%> 

Любые идеи?

Я заметил, что это похоже на якоря с target="_blank". Не знаю, почему это так.

ответ

2

Это немного сложно.

Многие искатели, в том числе Google, будут молча URL-кодировать любые небезопасные символы в URL-адресе, прежде чем проверять его на robots.txt. Это означает, что вам нужно заблокировать кодированную версию.

Например, если URL является:

http://example.com/foo/bar/<% my_var %> 

URL-адрес, который Google фактически проверяет против robots.txt будет:

http://example.com/foo/bar/%3C%%20my_var%20%%3E 

Пространства и угловые скобки беззвучно URL-закодирован. Так что вам нужно, чтобы заблокировать его, как это:

User-agent: * 
Disallow: */%3C%*%%3E 

Если вы пытаетесь заблокировать его, как это:

# Does not work: 
User-agent: * 
Disallow: */<%*%> 

, то ничего не будет заблокирован, потому что это сравнение «<» и «>» на " % 3C "и"% 3E ".

Я проверил, что вышеупомянутое работает для Google, но YMMV для других сканеров. Также обратите внимание, что некоторые сканеры вообще не поддерживают подстановочные знаки.