运行环境为nginx+php时,当web服务器找不到文件的时候会报出404的错误。如果不想让用户看到系统的错误提示,设置自定义的页面,可以增加安全性和友好度体验。
配置nginx的自定义404页面,需要在nginx.conf配置两个地方。
一个是nginx报出的404错误,当一些前端的静态文件如html文件、css文件等,直接是nginx去查找文件,如果没有这个文件nginx会报出404 Not Found nginx的错误。
一个是php报出的404错误,当一些脚本文件,比如php动态文件,nginx需要调用php-fpm去解析,nginx本身不能解析这些文件,所以当php解析时找不到这个php文件时,php也会返回404错误,并报错为File not found.
自定义404页面的两处nginx.conf配置文件代码配置:
server {
listen 80;
#多域名用空格隔开
server_name zixuephp.net m.zixuephp.net;
#设置默认访问首页
index index.php index.html;
#默认编码
charset utf-8;
#设置404或其他错误跳转到指定的页面
error_page 500 502 503 504 404 /404.html;
#nginx解析php脚本
location ~ \.php$ {
#设置php返回404屏蔽 File not found. 错误设置
try_files $uri =404;
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
include fastcgi_params;
index index.php index.html;
}
}
在nginx.conf配置error_page 500 502 503 504 404 /404.html; 和 try_files $uri =404;代码即可。