Lighttpd中404返回错误的状态码200的解决办法

Lighttpd版本1.4.22

前端时间,对网站配置了404错误跳转
server.error-handler-404   = "/404/index.php"
当发生404错误的时候,并不是打开ie默认的错误页,而是打开自定义的index.php页面。
按理此时显示页面的http status应该是404,但是返回的http status却是200
查看日志文件,发现日志里记录的也是200状态,而不是404状态。

通过查找发现,这应该是lighttpd的一个bug。
根据问题原因,采取如下两种解决方案:
一、在错误文件头部增加如下代码
<?php
   header('Status: 404 Not found');
?>

二、使用 server.errorfile-prefix 代替 server.error-handler-404 。
标签: Lighttpd
评论: 0 | 引用: 0 | 阅读: 8696