首页 » 二次开源 » dedecms建站 » 正文

DEDE更新栏目HTML取消生成list_x_1.html,用index.html代替第一页



dedecms 现在更新栏目HTML后生成的 index.html 与 list_x_1.html内容相同重复,在seo来说是造成重复内容或URL规范化的问题,列表页首页和第一页重复,不利于seo。

dede列表首页与列表第一页内容完全一样 ,DEDE列表页分页如何取消生成第一页,第一页用index.html默认页代替,即让列表第一页为index.html,以后为list_x_2.html list_x_3.html … ,没有list_x_1.html这一页,更有利于搜索引擎收录 。

如果后台栏目处选择链接到默认页,那么生成的列表里面就会出现 index.html 和 list_栏目ID_1.html 这样的两个相同文件。
打开 \include\arc.listview.class.php文件我们看到第347行代码:

//如果列表启用封面文件,复制这个文件第一页
if($this->TypeLink->TypeInfos[‘isdefault’]==1
&& $this->TypeLink->TypeInfos[‘ispart’]==0)
{
$onlyrule = $this->GetMakeFileRule($this->Fields[‘id’],”list”,$this->Fields[‘typedir’],”,$this->Fields[‘namerule2’]);
$onlyrule = str_replace(“{page}”,”1″,$onlyrule);
$list_1 = $this->GetTruePath().$onlyrule;
$murl = MfTypedir($this->Fields[‘typedir’]).’/’.$this->Fields[‘defaultname’];
$indexname = $this->GetTruePath().$murl;
copy($list_1,$indexname);
}

代码的意思是如果启用链接到默认页,那么就会复制列表第一页。也就是说不能直接生成 index.html,而必须在生成 list_栏目ID_1.html,的前提下才能生成 index.html。
所以我们直接让生成的列表页变成生成的第一页默认文件名就为 index.html,第二页为list_栏目ID_2.html,第三页为list_栏目ID_3.html …

接下来我们开始进行修改。
如果简单地不需要list_x_1.html
打开:\include\arc.listview.class.php
搜索 copy($list_1,$indexname); 在下面添加 unlink($list_1);
直接在生成index.html后删除掉list_x_1.html文件。

如果想直接控制不生成list_x_1.html,用index.html替换:
打开:\include\arc.listview.class.php
将第322行的 $makeFile = str_replace(“{page}”, $this->PageNo, $makeFile);
改成:
if($this->PageNo == 1)
{//如果为第一页
$makeFile = MfTypedir($this->Fields[‘typedir’]).”/index.html”;
}
else
{//如果为其他页
$makeFile = str_replace(“{page}”, $this->PageNo, $makeFile);
}

注释掉
if($startpage==1){
…..
}

重新生成一个新栏目,以上两种修改都能只生成index.html,而不再有list_x_1.html