2012-03-16 12 views
0

GoogleのGWTアプリを検索可能にする手段(https://developers.google.com/webmasters/ajax-crawling/docs/getting-started)を使用しています。正常に動作します。残念ながら、Bingは同じパターン/ルールに従っていないようです。URLRewriteFileとURL文字列の "#"文字

私は私のCrawlerServetが返されるように、私は唯一のBingBotため

http://www.example.com/?_escaped_fragment_=blah=something 

に、すべてのURLのフォーム

http://www.example.com/#!blah=something 

のをマッピングするためにユーザーエージェントに基づいて、URLフィルタを追加しようと思いました

GoogleBotのリクエストと同じです。

<rule> 
    <condition name="user-agent">Firefox/8.0</condition> 
    <from use-query-string="true">^(.*)#!(.*)$</from> 
    <to type="redirect">?_escaped_fragment_=$2</to> 
</rule> 

(私がテストするためのFirefoxのユーザーエージェントを使用しています)。これは、一致することはありません

:私のようなURLRewriteルールを持っています。私は$(。)!^(。)にルールを変更し、

http://www.example.com/!blah=something 

に試してみて、一致した場合、それは動作しますが、

http://www.example.com/#!blah=something 

同じルールを使用しているため、機能しませんフィルタが使用しているURL文字列が "#"で切り捨てられているようです。

誰でもこの作品を作ることができるかどうか教えてください。

答えて

0

ブラウザは、あなたが発見したように、サーバーにハッシュを送信しません。指定されたリクエストを見ると、#記号の前にurlだけが送信されることがわかります。あなたが言及したリンクから

GET/HTTP/1.1 
Host: example.com 
... 

ハッシュフラグメントは、(仕様による)されることはありませんが、HTTP要求の一部としてサーバーに送信されます。つまり、www.example.com/ajax.html#!key=value(www.example.com/ajax.htmlとは対照的に)というURLのコンテンツが必要であることをサーバーに知らせるには、クローラに何らかの方法が必要です)。テキストの記述から

、それは(ハッシュと)かなり一つに「醜い」URLから変換するために、そのページがあればどのように見えるかのスナップショットを送り返すために、サーバの仕事ですクライアント上にハッシュをロードします。そのページには他のドキュメントを読み込むためにハッシュを使用する他のリンクがあるかもしれません - クローラはを自動的にに変換して、それらを醜いURLに変換し、サーバからさらにデータを要求します。

要するに、これは変更する必要はありませんが、GoogleBotは自動的にハッシュフラグメントを使用するように設定します。他のボットについては、明らかにBingがこの考えをサポートしていますが、それはあなたの質問の範囲外であるようです。

+0

Bingの設定が見つかりました。ウェブマスターツールで[クロール] - > [クロール設定] - > [サイトがAJAX CRAWLABLE URLをサポートしているので、元の質問とは関係ありません。 – bryanb