321),虽然id=321的文章已经被删除了,或者根本不存在,但article.aspx这个页面始终是存在的,所以HTTP报头的状态码不会是404,而是200,表示请求成功。
我们假设一个网站有id=321/342/6739……的文章都被删除了,但蜘蛛并不知道,它仍然会进行抓取,结果它发现,这些不同的URL对应的居然全是同一个页面。它就会将其当做重复页面进行处理。
500意味着程序内部出现异常,比如3/0,代码如下: protected void Button1_Click(object sender, EventArgs e) { int i, j; i = 8; j = 0;
this.Label1.Text = (i / j).ToString(); }
如果搜索引擎接到一个500的状态码时,搜索引擎会理解
程序只是出现了暂时性的错误,它会在之后继续抓取,查看问题是否已经解决,这并不会给网站带来太大的
问题——只要你能够尽快恢复。但是,
Asp.net自带的个custom error的web.config配置,会让我们在
不经意间“失误”。理由和上面讲到的404变200类似,当转向自定义的error.aspx之后,蜘蛛得到的是成功链接error.aspx的200代码,所以蜘蛛会以为报错的originpage.aspx正常的显示内容就是error.aspx的内容。不同url参数的originpage.aspx会被蜘蛛认为是不同的url,所以蜘蛛会认为这些所有的url都重复了——后果是很严重的。
好了,认识到问题的严重性之后,我们来看解决问题的办法,太简单了,呵呵 protected void Page_Load(object sender, EventArgs e) {
//如果你希望
搜索引擎知道这个url将不再使用 Response.StatusCode = 404;
//如果你希望告诉搜索引擎这个url只是出现了暂时的故障 Response.StatusCode = 500; //如果你想永久重定向该页面 Response.StatusCode = 301;
Response.RedirectLocation = @"\
website1\target.aspx"; }文章出处:谛力泰克网 app开发 dilitech