2012-01-15 113 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; 
    } 

    ... 

} 

每当任何先前定义的错误代码被抛出时,预定义的自定义页面将被提供。