2017-01-27 1 views
1

robots.txt는 $을 특수 문자로 처리하여 패턴의 끝을 식별합니다.

비록, Googlebot이 스크립트 태그 예컨대 내 JS 템플릿에서 일부하는 HREF를 구문 분석 :

<a href="${object.path}"> ${object.name}</a> 

을 인코딩 한 후, 구글 봇은 404로 끝나는 mySite.com/$%7Bobject.path%7D에 도달하려고합니다.

이 문제를 해결하려면 robots.txt에 일치하는 지시문을 추가하여 이러한 URL의 크롤링을 금지하고 싶습니다.

그러나 "있는 그대로"작동하지 않습니다 $를 사용하여 :

Disallow: /$%7Bobject.path%7D$ 
내가 찾은

유일한 작업 솔루션은 와일드 카드 문자를 사용했다 :

Disallow: /*%7Bobject.path%7D$ 

비록, 정말이야을 그 특별한 $ 기호를 벗어날 수있는 방법이 있다면 궁금한가요?

감사합니다.

편집 :

구글의 robots.txt 테스트 도구를 사용하여 좀 더 테스트가 좀 이상한 결과가 잘 후에. 이 도구에 따르면 지침 : 다른 도구가 일치 하더군요 동안

Disallow: /*%7Bobject.path%7D$ 

이 (같은 https://technicalseo.com/seo-tools/robots-txt/를) /$%7Bobject.path%7D 작동하지 않습니다. 내가 너무 내 robots.txt에 모두 버전을 넣었습니다 그것에서 어떤 의미를 만들 수 없습니다

Disallow: /*{object.path}$ 

: 구글의 테스트 도구에서 작동 무엇

는 지침에서 인코딩되지 않은 브래킷을두고있다.

답변

0

Googlebot 및 기타 크롤러는 $을 지원하지만 로봇 제외 프로토콜 표준의 일부는 아닙니다.

표준에는 이스케이프 문자가 포함되어 있지 않으며 Google의 설명서에는이 표준이 언급되어 있지 않습니다.

는 인코딩 달러?

Disallow: /%24%7Bobject.path%7D$ 
+0

내가 구글 봇 %의 인코딩에게 $의 문자를하지 않기 때문에, 즉 일치하지 않습니다 두려워를 사용하여 시도 유무 : / – gonzoyumo

관련 문제