2012-01-15 108 views
1

我在網站上工作,如果用戶沒有通過身份驗證或沒有權限查看指定的頁面,我想拋出標準的404頁面。我已經做了一些看,但沒有運氣。顯然,我可以複製HTML,但我寧願不要。如果可能的話,我寧願使用nginx使用的實際404頁面。克隆默認的nginx 404頁面?

我在哪裏可以找到這個?

+0

我不明白你爲什麼不想複製HTML。你期望如果不是HTML,你會發現什麼? – 2012-01-15 01:26:09

+0

@KyleJones,我只是覺得這是一種半途而廢的方式。 – Rob 2012-01-15 01:34:01

+0

通過這個,我猜你所要求的是讓nginx顯示404頁面併發回一個HTTP 404 code_,這對你來說不是很清楚。 – 2012-01-15 01:44:00

回答

3

運行nginx -V並查找由--prefix=/prefix/path/to/nginx定義的路徑。

下找到/prefix/path/to/nginx/html

一種更好的方式默認的404文件404.html當你想自定義錯誤頁編輯默認文件添加塊像這樣的HTTP下的nginx.conf文件部分

error_page 400 /error_docs/400_bad_request.html; 
error_page 401 /error_docs/401_unauthorized.html; 
error_page 403 /error_docs/403_forbidden.html; 
error_page 404 /error_docs/404_not_found.html; 
error_page 405 /error_docs/405_method_not_allowed.html; 
error_page 406 /error_docs/406_not_acceptable.html; 
error_page 407 /error_docs/407_proxy_authentication_required.html; 
error_page 412 /error_docs/412_precondition_failed.html; 
error_page 415 /error_docs/415_unsupported_media_type.html; 
error_page 500 /error_docs/500_internal_server_error.html; 
error_page 501 /error_docs/501_not_implemented.html; 
error_page 502 /error_docs/502_bad_gateway.html; 
error_page 504 /error_docs/504_gateway_timeout.html; 

這基本上說使用/error_docs/404_not_found.html如果404錯誤生成。你明明定義那些您想使特定的自定義頁面

然後,您可以保存在某個地方的404_not_found.html文件服務器上,如/prefix/path/to/nginx/errors然後,根據每個服務器部分,添加類​​似

server { 

    ... 

    location /error_docs { 
     internal; 
     alias /prefix/path/to/nginx/errors; 
    } 

    ... 

} 

每當任何先前定義的錯誤代碼被拋出時,預定義的自定義頁面將被提供。