8

robots.txtファイルには次のセクションがあります

User-Agent: Bot1
Disallow: /A

User-Agent: Bot2
Disallow: /B

User-Agent: *
Disallow: /C

ステートメントDisallow:cはBot1とBot2に表示されますか?

4

2 に答える 2

10

tl; dr:いいえ、Bot1とBot2は。で始まるパスをうまくクロールしますC

各ボットは、最大で1つのレコード(ブロック)にのみ準拠します。

オリジナルスペック

元の仕様では、次のように述べています。

値が「*」の場合、レコードは、他のどのレコードとも一致しないロボットのデフォルトのアクセスポリシーを示します。

期限切れのRFCドラフト

いくつかの追加(など)を含む元の仕様AllowはRFCのドラフトになりましたが、承認/公開されることはありませんでした。3.2.1では、ユーザーエージェントの行に次のように書かれています。

ロボットは、ロボットの名前トークンをサブストリングとして含む値を持つUser-Agent行を含む/robots.txtの最初のレコードに従う必要があります。名前の比較では大文字と小文字は区別されません。そのようなレコードが存在しない場合は、「*」値が存在する場合は、ユーザーエージェント行のある最初のレコードに従う必要があります。いずれかの条件を満たすレコードがない場合、またはレコードがまったく存在しない場合、アクセスは無制限です。

したがって、元の仕様の解釈を確認します。

実装

たとえば、Googleは、仕様に従っているように見える例を示しています。

robots.txtファイルの各セクションは個別であり、前のセクションに基づいて構築されていません。例えば:

User-agent: *
Disallow: /folder1/

User-Agent: Googlebot
Disallow: /folder2/

この例では、一致/folder2/するURLのみがGooglebotで許可されていません。

于 2013-02-06T18:37:51.007 に答える
-2

ボットがrobots.txtファイルに従っている場合、はい、ステートメントが表示されるため、ボットは/cをクロールできません。

ユーザーエージェントの後のワイルドカード(*)は、すべてのユーザーエージェントを意味します。

ただし、すべてのボットがrobots.txtに準拠しているわけではないことに注意してください

于 2013-02-06T10:36:13.897 に答える