当时是在Apache下写的error page,换了Nginx后, 404页面直接跳到了500 服务器内部错误。
CentOS 6.2实战部署Nginx+MySQL+PHP
搭建基于Linux6.3+Nginx1.2+PHP5+MySQL5.5的Web服务器全过程
CentOS 6.3下配置Nginx加载ngx_pagespeed模块
CentOS 6.4安装配置Nginx+Pcre+php-fpm
只需要在配置try_files 的时候指定一下就可以了
我的是Debian, 在/etc/nginx/site-available/default 里面location /
server{
location / {
try_files $uri $uri/ /error/404.php?c=404 =404;
}
error_page 403 /error/403.php;
error_page 404 /error/404.php;
error_page 500 501 502 503 504 /error/500.php;
}
然后reload下nginx即可
参考#try_files
说明下, 我把页面放在了 网站目录下的error文件夹下. 比如网站放在/var/www/ 错误页面就在/var/www/error/403.php ...
测试的话很简单, 403是没权限比如你的网站目录css目录, 图片目录什么的, 404是不存在, 随便输个地址就可以, 500上是服务器的, 这里我停掉php-fpm来测试. 效果如下