A.NET教程:使用.ashx文件去除重复内容.(1)[图]_.NET概论及软件使用_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

A.NET教程:使用.ashx文件去除重复内容.(1)[图]

作者:黑客防线网安ASP维护基地 来源:黑客防线网安ASP维护基地 浏览次数:0

本篇关键词:重复内容文件教程
黑客防线网安网讯:    不同的链接指向的页面如果具有大量相同的内容,这种现象就会被称为“重复内容”,如果一个网站的重复内容很多,搜索引擎就会认为这个网站的价值不高。所以我们应尽量避免各种重复内容。...

    不同的链接指向的页面如果具有大量相同的内容这种现象就会被称为“重复内容”如果一个网站的重复内容很多,搜索引擎就会认为这个网站的价值不高所以我们应尽量避免各种重复内容

动态网站的重复内容常常是由URL参数引起的,而URL重写会恶化这一现象(比较耐人寻味哟,呵呵)。因为如果使用的是原始的URL参数的话,搜索引擎可能会进行适当的判断,而得知重复内容是由URL参数引起的,自动的进行相应的处理;而URL重写会掩盖URL参数,反而使得搜索引擎无法识别URL参数。比如:

原始的URL:
http://www.freeflying.com/articles.aspx?id=231&catelog=blog
http://www.freeflying.com/articles.aspx?id=231&catelog=news

经过URL重写过后的URL:
http://www.freeflying.com/blog/231.html
http://www.freeflying.com/news/231.html


这些URL所指向的页面内容其实是一样的,都是id=231的那篇文章,但这篇文章被blog和news两个栏目所引用,出于各种原因的考虑,我们最终的URL还是如上所示。

处理的办法有两种,一种是利用机器人(robot)协议“排除”其中一个,另一种是通过301将其中一个URL永久重定向另一个URL。

今天我们先讲robot协议。简单的讲,robot指的就是搜索引擎,针对Google,我们又将其称之为“蜘蛛(spider)”。蜘蛛是很有礼貌的,在抓取你的网页内容的之前,会首先征求你的意见。而你和robot之前就基于robot协议进行沟通。具体到实现,有两种方式:

1. 将一个的robots.txt文本添加到网站根目录下,如:

#static content, forbid all the pages under the "Admin" folder
User-agent: *
Disallow: /Admin


#行表示注释;

User-agent指搜索引擎,*表示针对所有搜索引擎,也可以指定具体的搜索引擎,如User-agent: googlebot;

Disallow指定不允许访问的目录或页面,注意:1. 此文本是大小写敏感的;2.必须以“\”开头,表示网站根目录;

和本系列的宗旨一样,我们着重谈ASP.NET技术。所以更多的robots.txt文本的注意事项,请查看http://www.googlechinawebmaster.com/2008/03/robotstxt.html

但我们怎么动态的生成这个文件呢(这种需求其实蛮多的)?可能我们马上想到的就是I/O操作,在根目录下写一个txt文件……,但其实还可以有一种方法:使用一般处理程序(.ashx文件),代码如下:

<%@ WebHandler Language="C#" Class="Handler" %>

using System;
using System.Web;

public class Handler : IHttpHandler {
   
    public void ProcessRequest (HttpContext context) {

        HttpResponse response = context.Response;
       
        response.Clear();
               
        //response.ContentType = "text/plain";  如果要用IE6查看页面的话,不能这一条声明,原因不详
       
    //下面这两句在实际使用中应该数据库等动态生成
        response.Write("User-agent: * \n");
        response.Write("Disallow: /news/231.html \n");

    //引用一个静态的robots文件内容,里面存储不会改变的屏蔽内容
        response.WriteFile("~/static-robots.txt");

        response.Flush();
    }
 
    public bool IsReusable {
        get {
            return false;
        }
    }

}
 


一般处理程序实现了IHttpHandler,在前面UrlRewrite部分中,我们讲到了HttpModule,其实在ASP.NET的应用程序生命周期中,有一个称之为“管道(pipeline)”的概念:一个HTTP请求,经过一个有一个的HttpModule的“过滤/处理”,最终到达一个HttpHandle的“处理器”部分,HttpModule和HttpHandle就组成了一个“管道”,非常形象哟,呵呵。贴张图吧:

 

    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-14148-1.html
网站维护教程更新时间:2012-03-30 05:29:30  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer