sitemap介绍:
百度的sitemap说明地址:http://zhanzhang.baidu.com/wiki/93#01
SiteMap作用:利于百度搜索
举例说明:
http://award.kinpan.com/AwardsIntroduce/AwardNews/20130609172732828125097a79b4e4a
http://award.kinpan.com/AwardsIntroduce/AwardNews/20130624102726828125093ba40f210
http://award.kinpan.com/AwardsIntroduce/AwardNews/201306241038078125000d72ba2d9fe
http://award.kinpan.com/AwardsIntroduce/AwardNews/20130624104148890625018d09da3eb
……………………………………………………………………………………………………
像上面这类网址,如果网站某列表页面有出现链接,百度会抓取,但是一般的列表页面只出现最新的几个,百度自动搜索网站上的页面,只能搜索到:http://award.kinpan.com/AwardsIntroduce/AwardNews,大部分带有id的详细页面还是不会出现,所以,我们生成所有详细内容页面的地址去给百度抓取,那么所有这些页面的内容就能被百度收录,自然在搜索时就能搜索出来了。
有多个sitemap,按上述格式重复<sitemap></sitemap>之间的片断,列明所有sitemap地址,向站长平台进行提交。
如果网址超过50000条或文件大小超过10M,就要分隔成KinpanUrl1.xml、KinpanUrl2.xml……
那么KinpanUrl.xml就是存放KinpanUrl1.xml、KinpanUrl2.xml……的路径,这个文件很小。
在百度提交网址就是提交KinpanUrl.xml,百度会根据KinpanUrl.xml里面的地址去获取KinpanUrl1.xml、KinpanUrl2.xml……里面的网址。
我这里做了另外的优化,把所有子站点的生成sitemap的链接放到一起,简化生成步骤,还加入了10分钟只能生成一次的限制,防止恶意生成,因为生成sitemap就是要把整个数据库的内容对应的要显示的页面都查找出来告诉百度,数据库查询比较耗资源。
//生成sitemap的类
/// <summary>
/// 创建站点sitemap的类
/// </summary>
public class CreateSiteMapTxt
{
public CreateSiteMapTxt() { }
private static CreateSiteMapTxt _Instance = null;
/// <summary>
/// 静态对象实例
/// </summary>
public static CreateSiteMapTxt Instance
{
get
{
if (_Instance == null) _Instance = new CreateSiteMapTxt();
return _Instance;
}
}
#region 创建站点的sitemap网址导航文件
/// <summary>
/// 创建站点的sitemap网址导航文件
/// </summary>
/// <returns>
/// 成功返回空,失败返回错误信息
/// </returns>
public string CreateTxt()
{
try
{
ConfigSiteUrl site = GetSiteByDefaultControl();
switch (site)
{
case ConfigSiteUrl.KinpanUrl:
{
#region 添加网址
List<string> list = new List<string>();
list.Add("/");//主页
list.Add("/InfoNews");
list.Add("/InfoNews?typeID=1");
list.Add("/InfoNews?typeID=2");
NewsTopicBLL bll = new NewsTopicBLL();
List<string> listtemp = bll.GetIDs(1);
foreach (string id in listtemp)
{
list.Add("/NewsDescription/Index/" + id);
}
bll.Dispose();
createSiteXml(list, site);
#endregion
}
break;
case ConfigSiteUrl.KinpanAwardUrl:
{
#region 添加网址
List<string> list = new List<string>();
list.Add("/");//主页
int sessionAward = new TangArt.GoldOnPubPlatform.App.Models.XmlHandler().GetXmlSession("~/Upload/Session.xml");
list.Add("/AwardsIntroduce/");//本届金盘奖页面
for (int i = 1; i < sessionAward; i++)
{
list.Add("/Awardsreview/Index/" + i);//历届金盘奖页面
}
list.Add("/Enroll");//评选申报表
list.Add("/audienceReg");//观众报名
list.Add("/CurrentIntroduce/");//关于金盘奖
NewsTopicBLL bll = new NewsTopicBLL();
List<string> listtemp = bll.GetIDs(2);//金盘奖新闻
foreach (string id in listtemp)
{
list.Add("/AwardsIntroduce