Discuz“插件不存在或已关闭”如何设置返回404状态

海外服务器 (459) 2015-10-12 16:36:51

之前给大家分享了修改Discuz帖子/文章被删除后跳转至404页面,并返回404状态,让大家知道了如何设置帖子或者文章被删除了后返回404状态,从而对404更有利。

 

如果插件被删了,出现“插件不存在或已关闭”那么如何使这样一个页面也返回404代码呢?

 

Discuz“插件不存在或已关闭”如何设置返回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页面的路径。

 

效果演示:

 

修改之前:

 

Discuz“插件不存在或已关闭”如何设置返回404状态

 

修改之后:

 

Discuz“插件不存在或已关闭”如何设置返回404状态

THE END