目录

Nginx 自定义 404 页面

目录
警告
本文最后更新于 2021-06-08,文中内容可能已过时。

Nignx 默认用自己的404页面, 如果要自定义需要配置一下.

(设 Nginx 目录为 ./)

首先到 ./conf 下编辑 nginx.conf 文件, 在 http 区段加入

fastcgi_intercept_errors on;

这句话大概意思是 FastCGI 后端服务器 response code 大于 300 时, 是否直接将响应发送给后端客户端, 或者将响应转发给 Nginx 由 error_page 指令来处理.

笑死, 根本看不懂. FastCGI 不知道是个什么东西, 反正不影响理解, 这玩意以后学到再说. 然后 response code 200 是正常, 其他如 404, 503 等都是不正常. 设置为 on 就是将响应转发给 Nginx 由 error_page 指令处理.

(类似还有一个 proxy_intercept_errors, 也不太懂, 反正我没设置这个也能自定义404, 就先不管了)

所以下一步我们要设置 error_page.

打开某个网站的配置文件, 在 server 区段中加入

error_page 404 /404.html;

其中, 需要保证 /404.html 存在. / 代表当前网站的 root 目录.

最后我的配置如下:

server {
    listen 80;
    listen [::]:80;
    listen 81 http2;
    server_name my.domain.name;
    root /my/web/dir;
    error_page 404 /404.html;
    location / {
        index index.html;
    }
}

最后重启一下Nginx:

nginx -s reload