2011-08-29 19 views
27

私はこれを動作させるように見えることはできませんが、それは本当に基本的なようです。robots.txtはルートのみを許可し、それ以外は許可しませんか?

私は

User-agent: * 
Allow:/
Disallow: /*/ 

が、Googleのウェブマスターを試してみました私は、ドメインのルートが

http://www.example.com 

をクロールする。しかし他に何もクロールしないことにしたいとすべてのサブディレクトリがダイナミック

http://www.example.com/* 

ですテストツールは、すべてのサブディレクトリが許可されていることを示します。

誰でもこれに対応していますか?ありがとう:)

+0

'Allow'行を削除するか、' Disallow'の後に入れてみてください。クローラーは、最初の試合で停止するはずです。 –

+0

ブライアンは最初の一致ルールですが、このようにすべてを禁止すると、Googleの「クイックビュー」は画像やスクリプトを読み込めないため、表示が変更される可能性があります。したがって、あなたのホームページを「クイックビュー」に表示するには、少なくとも1つのパブリックフォルダを作成する必要があります。 –

答えて

-2
User-agent: * 
Allow: index.html (or /index.php) 
Disallow:/

魔法を行う必要があります。

+0

index.html(または.php)がルートパス "/"ではありません –

25

Google's robots.txt documentationのBackus-Naur Form(BNF)構文解析定義によれば、AllowDisallowの命令の順序は関係ありません。したがって、注文を変更することは本当にあなたを助けません。

代わりに、$演算子を使用してパスの終了を示す必要があります。

このrobots.txtをテストします。私は(私もGWTで確認した)、それはあなたのために働く必要があります確信している:

user-agent: * 
Allow: /$ 
Disallow:/

これはhttp://www.example.comhttp://www.example.com/をクロールするが、他のすべてがブロックできるようになります。

注:Allowディレクティブは、あなたの特定のユースケースを満たしていますが、index.htmldefault.phpを持っている場合、これらのURLがクロールされることはありません

サイドノート:私は、Googlebotとbingbotの動作に慣れています。ターゲットとする他のエンジンがある場合、ディレクティブがどのようにリストされているかについての特定のルールがある場合とない場合があります。したがって、あなたが "余分な"ことをしたいのであれば、AllowDisallowディレクティブブロックの位置をいつも入れ替えることができます。あなたはGoogleのrobots.txtの仕様を見てみると

+0

ルートページのみをクロールできますか?またはhttp://www.example.com/electr/pr.htmlもOKですか? – gmlvsv

2

、あなたがそれを見ることができます:

グーグル、ビング、ヤフー、およびパスの値は、「ワイルドカード」の限定された形をサポートして下さい。これらは次のとおりである:

  1. *任意の有効な文字
  2. $の0以上のインスタンスを指定はeywuが言ったように

が続いhttps://developers.google.com/webmasters/control-crawl-index/docs/robots_txt?hl=en#example-path-matches

を参照してくださいURLの末尾を指定します、解は、

user-agent: * 
Allow: /$ 
Disallow:/
関連する問題