帝国CMS默认的tag伪静态方法是以“tagname”为基础的,但有时我们可能需要以“tagid”来实现tag的伪静态功能。以下是具体的实现步骤:
第一步:修改 eclassconnect.php 文件
function eReturnRewriteTagsUrl($tagid,$tagname,$ecms=0){
global $public_r,$empire,$dbtbpre;
if(!$tagid){
$tagname=RepPostVar($tagname);
if(!$tagname){
$r['pageurl']=$public_r['newsurl'];
$r['rewrite']=0;
return $r;
}
$tagr=$empire->fetch1("select tagid,num from {$dbtbpre}enewstags where tagname='$tagname' limit 1");
if(!$tagr['tagid']){
$r['pageurl']=$public_r['newsurl'];
$r['rewrite']=0;
return $r;
}
$tagid=$tagr['tagid'];
}
if(empty($public_r['rewritetags'])){
$r['pageurl']=$public_r['newsurl']."e/tags/?tagid=".$tagid;
$r['rewrite']=0;
}
else{
if($ecms==1){
$r['pageurl']=$public_r['newsurl'].str_replace(array('[!--tagname--]','[!--page--]'),array($tagid,0),$public_r['rewritetags']);
}
else{
$r['pageurl']=$public_r['newsurl'].str_replace('[!--tagname--]',$tagid,$public_r['rewritetags']);
}
$r['rewrite']=1;
}
return $r;
}
搜索“function eReturnRewriteTagsUrl($tagid,$tagname,$ecms=0){”,找到函数 eReturnRewriteTagsUrl 并将其替换为上述代码。
第二步:修改 etagsindex.php 文件
// 伪静态
$pagefunr=eReturnRewriteTagsUrl($tagid,$tagname,0);
$pagefunr['repagenum']=0;
// 分页
if($pagefunr['rewrite']==1){
$listpage=InfoUsePage($num,$line,$page_line,$start,$page,$search,$pagefunr);
}
else{
$listpage=page1($num,$line,$page_line,$start,$page,$search);
}
将分页函数部分的原有代码注释掉,并替换成上述代码。
第三步:后台设置 tag 伪静态
在后台的伪静态设置中,按照默认格式设置为:tags-[!--tagname--]-[!--page--].html 即可。
第四步:服务器伪静态规则
对于使用 Apache 的服务器,添加以下伪静态规则。如果是其他类型的服务器,请根据实际情况进行调整:
RewriteRule ^tags-(.*)-(.*)$ e/tags/index.php?tagid=$1&page=$2
通过以上步骤,您可以成功地以 tagid 来实现 tag 的伪静态功能。这样不仅可以优化网站结构,还可以提升搜索引擎优化(SEO)的效果。