我正在使用一个带有静态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状态代码。
我认为我们正在使用静态页面,但是我们重定向的方式可能意味着我们实际上并不是这样吗?
抱歉新手问题。
答案 0 :(得分:3)
通过使用server.errorfile-prefix
来修正此问题 - 认为它只是server.error-handler-404
中的一个错误。
似乎是a known bug in some versions of lighttpd。我实际上使用的是1.4.17之后的版本,但仍然看到同样的问题。