php技术博客
让天下没有搞不定的bug~

thinkphp中利用EmptyAction实现404页面返回404状态,而不是200状态

thinkphp中利用EmptyAction实现404页面返回404状态,而不是200状态

今天遇到一个问题,就是一个网站,输入不存在的网址,返回的是404页面,但是用:http://tool.chinaz.com/pagestatus 检测的时候还是200状态,按理应当返回404状态才是对的。这样搜索引擎会认为这个“根本不存在的”网页在网站内是存在的,这会导致很多问题,影响网站的最终SEO效果。所以这是一个潜在的很大的问题,网站是利用thinkphp开发的,解决办法如下:

1、在Lib/Action文件夹下创建EmptyAction.class.php(这里要注意空类的位置)
[down]display(“Public:404”);
}

function index() {
header(“HTTP/1.0 404 Not Found”);
$this->display(‘Public:404’);
}
}
?>[/down]
2、修改Lib/Action文件夹下所有的Action文件,在所有的控制器文件中加入如下代码:
[warning]function _empty(){
header(“HTTP/1.0 404 Not Found”);//使HTTP返回404状态码
$this->display(“Public:404”);
}[/warning]
3、在Tpl/Public文件夹下创建404页面404.html
 
可以测试一下,在没弄这个返回状态之前测试一下,以前的不存在的网址返回的是什么状态,改了之后是什么状态,有什么不懂的请在下边留言,我会及时为您解答。

赞(0)
未经允许不得转载:PHP技术博客 » thinkphp中利用EmptyAction实现404页面返回404状态,而不是200状态