2017-01-27 16 views
1

robots.txtは、パターンの最後を特定するための特殊文字として$を処理します。

ものの、Googlebotはスクリプトタグ例えば内JSテンプレートからいくつかのhrefを解析している。

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

それをコードした後、Googleのボットは、404エラーで終了mySite.com/$%7Bobject.path%7Dに到達しようとします。

これを回避するには、robots.txtに一致するディレクティブを追加することで、このようなURLがクロールされないようにします。

しかし、「そのまま」は動作しません$を使用して:

Disallow: /$%7Bobject.path%7D$ 
私が見つけた

ザ・唯一の作業溶液は、ワイルドカード文字を使用することでした:

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

けれども、私は本当にだがその特定の$記号を逃れる方法があるのであれば興味がありますか?

ありがとうございました。

EDIT:

まあグーグルのrobots.txtテストツールといくつかのより多くのテストの後、私はいくつかの奇妙な結果を持っています。このツールによるディレクティブ:他のツールは、それが(https://technicalseo.com/seo-tools/robots-txt/のように)一致した私に語っながら

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

/$%7Bobject.path%7Dのために動作しません。私は、私は私のrobots.txtの中で両方のバージョンを入れていることのうちのいずれかの意味を理解することはできません

Disallow: /*{object.path}$ 

:Googleのテストツールではどのような作品

はディレクティブでエンコードされていない括弧を入れています。

答えて

0

Googlebotと他のクローラは$をサポートしていますが、ロボット除外プロトコルの標準には含まれていません。

標準にはエスケープ文字は含まれていません。また、Googleのマニュアルではそのことについて言及していません。

は、私はGoogleのボットは、パーセントエンコードに$の文字をしないため、それが一致しません怖い?:

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

をエンコードドルを使用してみました:/ – gonzoyumo

関連する問題