我正在网站上工作,如果用户未经过身份验证或没有查看指定页面的权限,我想抛出标准的404页面。我做了一点看,但没有运气。显然我可以复制HTML,但我不愿意。我宁愿使用nginx使用的实际404页面,如果可能的话。
我在哪里可以找到这个?
答案 0 :(得分:3)
运行nginx -V
并查找--prefix=/prefix/path/to/nginx
定义的路径。
您会在404.html
/prefix/path/to/nginx/html
的默认404文件
当您需要自定义错误页面时,编辑默认文件的更好方法是将这样的块添加到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;
如果生成404错误,这基本上表示使用/error_docs/404_not_found.html
。您显然可以定义要为其创建特定自定义页面的那些
然后,您可以将404_not_found.html文件保存在服务器上的某个位置,例如/prefix/path/to/nginx/errors
,然后在每个服务器部分下添加类似
server {
...
location /error_docs {
internal;
alias /prefix/path/to/nginx/errors;
}
...
}
每当抛出任何先前定义的错误代码时,将提供预定义的自定义页面。