2015-07-20 1 views
1

J'ai besoin d'une règle robots.txt Disallow qui empêche les robots d'exploration de suivre les balises de gabarit comme dans les balises <script type="text/template">.Empêcher les robots d'exploration de lire les modèles de soulignement

Quand rampé, l'url, j'obtiens des erreurs pour ressemble:

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

Par ex

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

Bloqué par quelque chose comme:

Disallow: <%*%> 

Toutes les idées? J'ai remarqué que cela semble se produire sur les ancres avec target="_blank". Je ne sais pas pourquoi.

Répondre

2

Ceci est un peu difficile.

De nombreux robots, y compris Google, encoderont en silence les caractères dangereux dans l'URL avant de les vérifier par rapport à robots.txt. Cela signifie que vous devez bloquer la version encodée.

Par exemple, si l'URL est:

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

L'URL que Google vérifie effectivement contre robots.txt sera:

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

Les espaces et les crochets sont en silence de code URL. Donc, vous devez bloquer comme ceci:

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

Si vous essayez de le bloquer comme ceci:

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

alors rien ne sera bloqué, car il est à comparer « < » et « > » à " % 3C "et"% 3E ".

J'ai vérifié que ce qui précède fonctionne pour Google, mais YMMV pour les autres robots d'exploration. Notez également que certains robots ne prennent pas en charge les caractères génériques.