phpcms如何将已删除的内容http状态码设置为404方法
本文介绍 PHPCMS V9 为已删除、不存在的内容页面配置 404 状态码的方法,通过修改程序文件响应 HTTP 状态头,搭配 404 页面展示,优化站点 SEO 效果。
教程背景说明
站点改版两个半月后,关键词权重已顺利转移,新站点流量也趋于稳定。加上原站点使用的CDN服务经常出现改版规则验证失效的问题,因此计划解除新旧站点跳转关系、清理改版规则并提交死链数据,这就需要将PHPCMS中已删除栏目、文章页面统一设置为真实404状态码。
目前网络上相关教程存在不少问题,要么步骤顺序混乱、文件路径标注不全,要么忽略实操中容易出现的编码报错等细节问题。结合实际运维经验,我的站长站整理了一套步骤清晰、细节完善的设置方法,手把手教大家完成配置。
两种404形式简单区分
目前主流分为伪404和真实404两类。伪404只是展示自定义页面,不会变更网页状态码,一般用于保留访客流量;本次教程讲解的是真实404配置,页面会标准返回404状态码,适合改版后清理死链、解除跳转的场景。
详细操作步骤
第一步:根目录创建404入口文件
进入网站根目录,新建命名为 page404.php 的文件,将下方代码完整写入文件中并保存。
<?php header( $_ENV['SERVER_PROTOCOL']." 404 Not Found", true, 404 ); ?>
第二步:新增404调用函数
找到系统函数文件,完整路径:/phpcms/libs/functions/global.func.php。打开文件后,在代码最后一个右大括号 } 之前,添加如下函数代码。
function page404(){
header($_SERVER['SERVER_PROTOCOL']." 404 Not Found", true, 404 );
require('page404.php');
exit();
}第三步:修改内容模块入口文件
打开文件 /phpcms/modules/content/index.php,依次查找四处判断语句,将语句后方默认的提示函数统一替换为 page404()。
查找
if(!$catid || !$id),替换后方showmessage(L('information_does_not_exist'),'blank')查找
if(!isset($CATEGORYS[$catid]) || $CATEGORYS[$catid]['type']!=0),替换后方showmessage(L('information_does_not_exist'),'blank')查找
if(!$r || $r['status'] != 99),替换后方showmessage(L('info_does_not_exists'),'blank')查找
if(!isset($CATEGORYS[$catid])),替换后方showmessage(L('category_not_exists'),'blank')
全部替换完成后保存文件,此时栏目页、内容页在数据删除后,都会正常返回标准404状态码。
实操常见报错及解决办法
很多人复制网上代码部署后,会出现网站无法访问、网页编码错误的问题。出现该问题的主要原因是,部分编辑器代码插件会自带特殊格式、隐藏字符,直接粘贴到程序文件中会破坏原有编码。
标准解决方式:先把复制的代码粘贴到系统自带记事本中,清除多余格式与隐藏字符,再从记事本重新复制,粘贴到对应的程序文件内,即可规避编码异常问题。本篇教程代码无额外格式,可直接复制使用。
总结
按照以上三步依次操作,就能在PHPCMS中实现已删除内容返回真实404状态码,满足站点改版、提交死链、关闭旧站跳转等运维需求。整个流程路径标注明确、步骤顺序合理,同时提前规避了编码报错这类高频问题,按照流程操作基本不会出现故障。配置完成后,可借助HTTP状态码查询工具检测页面返回状态,确认404生效即可。
404
2024-06-30 618访问异常网页时服务器常会返回404页面,合理搭建与设置404页面,能够有效提升网站用户体验。这里提供详细404配置教程,同时分享多款精美好看的404网页模板,方便站长直接...
- 风筝断了线卡通404模板下载 [2024-09-30]
- 和泉纱雾卡通人物404模板 [2024-08-13]
- bootstrap自适应闪电404网页模板 [2024-06-30]
- 报错404 Not Found怎么办? [2024-01-08]
- 404页面正确的SEO优化方法 [2023-11-10]

