Nginx - 定制 404 页面

2022-08-30 09:26:13

Nginx + PHP(在fastCGI上)对我来说效果很好。当我输入一个不存在的PHP文件的路径时,我没有得到默认的404错误页面(对于任何无效的.html文件),我只是得到一个“未指定输入文件”。

如何自定义此 404 错误页面?


答案 1

您可以为nginx.conf中的每个位置块设置自定义错误页面,也可以为整个站点设置全局错误页面。

要重定向到特定位置的简单 404 未找到页面,请执行以下操作:

location /my_blog {
    error_page    404 /blog_article_not_found.html;
}

网站范围的 404 页面:

server {
    listen 80;
    error_page  404  /website_page_not_found.html;
    ...

您可以将标准错误代码追加在一起,以便为多种类型的错误提供一个页面:

location /my_blog {
    error_page 500 502 503 504 /server_error.html
}

要重定向到完全不同的服务器,假设您在 http 部分中定义了一个名为 server2 的上游服务器:

upstream server2 {
    server 10.0.0.1:80;
}
server {
    location /my_blog {
        error_page    404 @try_server2;
    }
    location @try_server2 {
        proxy_pass http://server2;
    }

手册可以为您提供更多详细信息,或者您可以在Google上搜索nginx.conf术语,并在error_page以获取网络上的真实示例。


答案 2

您可以在 nginx 配置中使用 error_page 属性。

例如,如果打算将 404 错误页设置为 ,请使用/404.html

error_page 404 /404.html;

将 500 错误页面设置为 与以下内容一样简单:/500.html

error_page 500 /500.html;

推荐