之前给大家分享了修改Discuz帖子/文章被删除后跳转至404页面,并返回404状态,让大家知道了如何设置帖子或者文章被删除了后返回404状态,从而对404更有利。(修改404的重要性就不再赘述了,懂的自然懂。)

那么如果插件被删了,出现“插件不存在或已关闭”

“插件不存在或已关闭”404

那么如何使这样一个页面也返回404代码呢?

在解决这样一个问题之前我也百度了一下,这个问题关注的人并不多,有人有这样的疑问,但是没有解决,所以没有从度娘那里找到答案。在苦苦折腾一番之后终于找到了代码在哪里修改,特此给大家分享一下。

解决步骤

1、打开网站根目录,找到“plugin.php”文件,最好使用专业点的软件打开,比如editplus、dreamweaver等。

2、找到第37行代码,具体位置:

 

if(empty($identifier) || !preg_match("/^[a-z0-9_\-]+$/i", $module) || !in_array($identifier, $_G['setting']['plugins']['available'])) {
	showmessage('plugin_nonexistence');

 将其中的

showmessage('plugin_nonexistence');

替换成:

header('HTTP/1.1 404 Not Found');
header('status: 404 Not Found');
include("404/index.html");
exit();

因为“showmessage('plugin_nonexistence');”这一段在文件里出现比较多,37行的替换掉对于seo效果是最好的,其他的可以不用管,

其中“404/index.html”为自己设置的404页面的路径。

效果演示:

修改之前:

插件不存在或已关闭404

修改之后:

插件不存在或已关闭404