ASP.NET MVC 3のウェブサイトにいくつかのページがあります(ここでの技術は重要ではありません)。ページの<script>
タグに特定のURLをレンダリングして、JavaScript(外部ファイルに保存)サーバーへのAJAX呼び出しを実行できます。ボットがAJAXベースのURLをクロールするのを止めるにはどうすればいいですか?
このような何か:
<html>
...
<body>
...
<script type="text/javascript">
$(function() {
myapp.paths.someUrl = '/blah/foo'; // not hardcoded in reality, but N/A here
});
</script>
</body>
</html>
今サーバー側では、これらのURLのほとんどのは、それを知らせる属性で保護されています
A)彼らは、AJAX(例えばXmlHttpRequestの)によってアクセスすることができます
B)はJSONを返すように、それらは、(HTTP POSTによってアクセス可能 - セキュリティ)
問題は、いくつかのreasoためありますn、ボットがこれらのURLをクロールして、HTTP GETを実行しようとすると、404が発生します。
私はボットがjavascriptを試してはならないという印象を受けました。では、これらのURLをどのように保持していますか?
これを防ぐ方法はありますか?
これらのURL変数を外部ファイルに移動することはできません。上のコードのコメントからわかるように、私はURLをサーバーコードで出力します(実際のページで行う必要があります)。
私は基本的に、私のウェブサイトへのルーティングをHTTP 410(Gone)のURLに追加しました(AJAX POSTでない場合)。どちらが本当に迷惑なのですか?それは私の既に納得したルートテーブルに別のルートを追加しているからです。
ヒント/ご提案はありますか? robots.txtの中に接頭辞によって
はどこでも、それらを指して任意の '' タグはありますか?どのボットがそれらに当っていますか? – SLaks
@ RPM1984:ちょうど好奇心の外に、ユーザーエージェントによるヒット数に関する統計を集めましたか?これから、あなたはどんな種類のボットに悩まされていますか? –
私はgooglebotがjavascriptをクロールするいくつかの限られた能力を持っていると思うので、問題になる可能性があります。 Googlebotはrobots.txtを尊重していますが、クロールを防ぐために設定することができます。 –