2011-09-22 132 views
2

我正在使用lighttpd 404錯誤處理程序和靜態404頁面。整個的conf文件看起來是這樣的:lighttpd:404頁面不返回404狀態

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狀態碼。

我想我們正在使用一個靜態頁面,但關於我們重定向的方式可能意味着我們實際上不是?

對不起,這個新手問題。

回答

3

通過使用server.errorfile-prefix來解決這個問題 - 想想這只是server.error-handler-404中的一個錯誤。

似乎是a known bug in some versions of lighttpd。我實際上使用的是比1.4.17更新的版本,但仍然看到同樣的問題。

+1

謝謝,這個排序我的問題。我也在更新的版本,但也有同樣的問題。儘管我認爲我們的服務器位於可能成爲問題一部分的nginx服務器之後。記得也要使用文件的完整路徑!文檔中不清楚的東西。 – Olical