克隆默认nginx404页面?

克隆默认nginx404页面?,nginx,http-status-code-404,Nginx,Http Status Code 404,我在一个网站上工作,如果用户没有经过身份验证或者没有查看指定页面的权限,我想抛出标准404页面。我找了一点,但运气不好。显然,我可以直接复制HTML,但我不愿意。如果可能的话,我宁愿使用nginx实际使用的404页面 在哪里可以找到它?运行nginx-V并查找由--prefix=/prefix/path/to/nginx定义的路径 您将在/prefix/path/to/nginx/html下找到默认的404文件404.html 当需要自定义错误页面时,编辑默认文件的更好方法是在http部分下的n

我在一个网站上工作,如果用户没有经过身份验证或者没有查看指定页面的权限,我想抛出标准404页面。我找了一点,但运气不好。显然,我可以直接复制HTML,但我不愿意。如果可能的话,我宁愿使用nginx实际使用的404页面


在哪里可以找到它?

运行
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;
这基本上是说,如果生成404错误,请使用
/error\u docs/404\u not\u found.html
。显然,您定义了要为其创建特定自定义页面的内容

然后,您可以将404_not_found.html文件保存在服务器上的某个位置,例如
/prefix/path/to/nginx/errors
,然后在每个服务器部分下添加如下内容

server {

    ...

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

    ...

}

无论何时抛出任何先前定义的错误代码,都将提供预定义的自定义页面。

我不明白您为什么不想复制HTML。如果不是HTML,你希望找到什么?@KyleJones,我只是觉得这是一种半途而废的做法。我猜你要求的是某种方式,让nginx显示404页面并发送回HTTP 404代码,这在你的问题中我并不清楚。@KyleJones,是的,尽管我确信使用
header()
和HTML相对简单。