我发现 GoogleBot 正在抓取 JavaScript/AJAX 代码中引用的 Web 服务 URL。该 URL 已经在 robots.txt 中作为排除项,但在确定要抓取的内容时,Google 似乎不再遵守 robots.txt - 它似乎只是使用它来知道不索引的内容。
值得庆幸的是,这些服务 URL 只返回数据而不是执行操作,但它会弄乱我们收集的统计数据,这是非常不可取的。我个人无法看到 Google 是如何找到 Web 服务的 URL 的,除非它在 Javascript 代码中抓取任意字符串(这似乎不太可能?)。
对于某些 URL,这也会导致我从网站上收到很多 Elmah 错误消息,这些消息说:
System.InvalidOperationException:无法识别 URL 意外以“/GetShortlists”结尾的请求格式。“......因为谷歌试图在它只支持POST时获取URL 。
它在其中查找 URL 的代码如下:
function GetShortlistsForUser() {
$.ajax({
type: "POST", url: "/WebService/WebService.asmx/GetShortlists",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) { /*--CUT--*/ });
}
});
那么我应该通过替换斜杠以某种方式混淆 URL,还是有更好的方法来阻止这些被抓取?