robots.txtファイルには次のセクションがあります
User-Agent: Bot1
Disallow: /A
User-Agent: Bot2
Disallow: /B
User-Agent: *
Disallow: /C
ステートメントDisallow:c
はBot1とBot2に表示されますか?
robots.txtファイルには次のセクションがあります
User-Agent: Bot1
Disallow: /A
User-Agent: Bot2
Disallow: /B
User-Agent: *
Disallow: /C
ステートメントDisallow:c
はBot1とBot2に表示されますか?
tl; dr:いいえ、Bot1とBot2は。で始まるパスをうまくクロールしますC
。
各ボットは、最大で1つのレコード(ブロック)にのみ準拠します。
元の仕様では、次のように述べています。
値が「*」の場合、レコードは、他のどのレコードとも一致しないロボットのデフォルトのアクセスポリシーを示します。
いくつかの追加(など)を含む元の仕様Allow
はRFCのドラフトになりましたが、承認/公開されることはありませんでした。3.2.1では、ユーザーエージェントの行に次のように書かれています。
ロボットは、ロボットの名前トークンをサブストリングとして含む値を持つUser-Agent行を含む/robots.txtの最初のレコードに従う必要があります。名前の比較では大文字と小文字は区別されません。そのようなレコードが存在しない場合は、「*」値が存在する場合は、ユーザーエージェント行のある最初のレコードに従う必要があります。いずれかの条件を満たすレコードがない場合、またはレコードがまったく存在しない場合、アクセスは無制限です。
したがって、元の仕様の解釈を確認します。
たとえば、Googleは、仕様に従っているように見える例を示しています。
robots.txtファイルの各セクションは個別であり、前のセクションに基づいて構築されていません。例えば:
User-agent: * Disallow: /folder1/ User-Agent: Googlebot Disallow: /folder2/
この例では、一致
/folder2/
するURLのみがGooglebotで許可されていません。
ボットがrobots.txtファイルに従っている場合、はい、ステートメントが表示されるため、ボットは/cをクロールできません。
ユーザーエージェントの後のワイルドカード(*)は、すべてのユーザーエージェントを意味します。
ただし、すべてのボットがrobots.txtに準拠しているわけではないことに注意してください