我已经设置了一些代码来过滤具有查询字符串中某些单词的页面,以重定向到404或410页面,该页面完美运行。问题是,当我检查日志时,谷歌机器人仍然显示与200相同的链接。我已经检查使用不同的方法,该页面肯定会成为404.我还通过谷歌测试链接,他们回复404。我从我的日志中提供了一个简短的摘录作为示例(更改了IP和一些隐私文本):
> 66.249.69.46 - W3SVC472 WIN9 80 GET /events/default.asp youth-zzz-yyy?___from_store=it&___store=dk&cat=54&price=1300- 200 0 14543 441 1 HTTP/1.1 .... (compatible;+Googlebot/2.1;++http://www.google.com/bot.html) > 111.111.111.111 - W3SVC472 WIN9 80 GET /events/default.asp youth-zzz-yyy?___from_store=fr&___store=de&price=150- 404 0 1434 724 1 HTTP/1.1 Mozilla/5.0+(Windows+NT+6.3;+WOW64;+rv:33.0)+Gecko/20100101+Firefox/33.0
在第一个条目中,它似乎来自谷歌机器人(IP确认它是谷歌),第二个是我点击谷歌链接。两个页面都应显示404的响应状态,但第一个显示200.为什么?
这是我在default.asp中的代码,它检查查询字符串中的特定术语,例如,zzz-yyy:
if (inStr(LCase(Request.QueryString), "zzz-yyy")) then
Response.Status = "404 Page not found"
Response.End
end if
简单而有效,但不适用于机器人。可以在某个地方缓存吗?我试图清除域缓存,但这也没有帮助。
答案 0 :(得分:1)
我发布这个作为我自己问题的答案,因为经过详尽的搜索后我相信这是我需要的答案,可能会帮助别人。当Google检查比定位网站索引更频繁的链接时,它会加载缓存页面,在我的情况下,由于缓存副本仍然存在,因此返回200状态。因此,当我点击Google搜索中的链接时,它会按预期正确加载404页面。但是当我使用" Fetch as Google"来检查Google网站管理员工具时选项,它使用200响应代码加载缓存页面。所以我想这只是一个耐心或使用谷歌工具鼓励它重新索引网站的问题。