lighttpd:404页面不返回404状态

时间:2011-09-22 10:57:51

标签: webserver http-status-code-404 lighttpd http-status-codes

我正在使用一个带有静态404页面的lighttpd 404错误处理程序。整个conf文件如下所示:

server.document-root = "/home/www/local/www/mysite/html"
url.rewrite = (
  "^(.*)/($|\?.*)" => "$1/index.html",
  "^(.*)/([^.?]+)($|\?.*)$" => "$1/$2.html"
)
server.error-handler-404 = "/404.html"
$HTTP["scheme"] == "http" {
  url.redirect = ( "^/blog.html$" => "/blog/",
       // various individual redirects
  )
}
$HTTP["scheme"] == "https" {
  $HTTP["url"] !~ "^/blog/admin/" {
    url.redirect = ( "^/(.*)" => "http://www.mysite.com/$1" )
  }
}

但是,当我转到404的地址时,我会正确地看到我们的404页面,但状态代码是200.

lighttpd docs表示如果使用静态页面,您应该获得404状态代码。

我认为我们正在使用静态页面,但是我们重定向的方式可能意味着我们实际上并不是这样吗?

抱歉新手问题。

1 个答案:

答案 0 :(得分:3)

通过使用server.errorfile-prefix来修正此问题 - 认为它只是server.error-handler-404中的一个错误。

似乎是a known bug in some versions of lighttpd。我实际上使用的是1.4.17之后的版本,但仍然看到同样的问题。