在帝国cms中,当你的服务器设置了很多伪静态的时候,比如在百度收录之后,把你的ag页面收录之后,打开收录连接的时候,页面返回的状态码不是404,状态码是301或者是200的,那么这个
在帝国cms中,当你的服务器设置了很多伪静态的时候,比如在百度收录之后,把你的tag页面收录之后,打开收录连接的时候,页面返回的状态码不是404,状态码是301或者是200的,那么这个怎么解决呢?今天就来把教程分享个大家?
如果用帝国TAG中,当你删除一个tag的时候,在点击这个tag时会出现“此TAG不存在”,百度抓取时状态码还是正常的200,那么百度爬虫还会认为此页面为正常页面,但当我们删除后,我们实际是要告诉百度百度此页面已不存在,也就是状态码为404,而帝国的大神们没有对此做除理,作为一个SEOer怎么可能让这种情况出现了,太影响网站优化了,所以必须要修改调整
未调整前的检测图:
修改方法如下:
我们分析了e/tag/index.php的文件中当此TAG不存在时会触发printerror函数,那么我们就可以真对printerror进行除理,当我们深入研究后发现一般情况下出发的函数传入的参数如下:
if($tagid)
{
$tagr=$empire->fetch1("select tagname,num,tagtitle,tagkey,tagdes,fclast from {$dbtbpre}enewstags where tagid='$tagid'");
if(!$tagr['tagname'])
{
// @header("HTTP/1.0 404 Not Found.");
// @header("status: 404 Not Found");
printerror('HaveNotTags','',1);
}
$tagname=$tagr['tagname'];
$num=$tagr['num'];
$search.="&tagid=$tagid";
}
因为本站用的是tagid的格式,所以我们只需要在打印前面加上
@header("HTTP/1.0 404 Not Found.");
@header("status: 404 Not Found");
既然找到了错误时输出的内容那么我们就可以在输出内容的最前面加入以下内容:
那么我们就把上面代码中的注释取消即可
至于为什么要在最前面加大家可以去查下header使用手册,这里就不在细说了。
修改后的内容如下:
if($tagid)
{
$tagr=$empire->fetch1("select tagname,num,tagtitle,tagkey,tagdes,fclast from {$dbtbpre}enewstags where tagid='$tagid'");
if(!$tagr['tagname'])
{
@header("HTTP/1.0 404 Not Found.");
@header("status: 404 Not Found");
printerror('HaveNotTags','',1);
}
$tagname=$tagr['tagname'];
$num=$tagr['num'];
$search.="&tagid=$tagid";
}
这样当提示“此信息不存在”时你可以看查下,状态码为404
上传以下图片:
本网刊登的文章均仅代表作者个人观点,并不代表本网立场。文中的论述和观点,敬请读者注意判断。
2022-05-29
2022-04-12
2022-10-26
2021-02-08
2022-05-30
2021-08-27
2021-02-08
2021-03-20