1.创建自己的404.html页面
2.更改nginx.conf在http定义区域加入:fastcgi_intercept_errors on;
3.更改nginx.conf在server 区域加入:error_page 404 = /404.html
4.测试nginx.conf正确性:/opt/nginx/sbin/nginx –t

如果正确应该显示如下信息:

1the configuration file /opt/nginx/conf/nginx.conf syntax is ok
2configuration file /opt/nginx/conf/nginx.conf test is successful
3kill -HUP  `cat /opt/nginx/nginx.pid `

配置文件实例:

 1server
 2   {
 3   listen       80;
 4   server_name  www.XXX.com ;
 5   index index.html index.htm index.php;
 6   root  /opt/www/;
 7   location ~ .*.(php|php5)?$
 8   {
 9     #fastcgi_pass  unix:/tmp/php-cgi.sock;
10     fastcgi_pass  127.0.0.1:9000;
11     fastcgi_index index.php;
12     include fcgi.conf;
13   }
14   error_page  404 = /404.html;

502 等错误可以用同样的方法来配置。

1error_page   500 502 503 504 = /50x.html;
2   location = /50x.html {
3            root   html;
4        }
5   log_format  65$remote_addr$remote_user [$time_local] "$request"6$status $body_bytes_sent "$http_referer"7"$http_user_agent" $http_x_forwarded_for’;
8   access_log  /opt/nginx/logs/65.log  65;
9}

注意事项:

1.必须要添加:fastcgi_intercept_errors on; 如果这个选项没有设置,即使创建了404.html和配置了error_page也没有效果。

fastcgi_intercept_errors 语法:
fastcgi_intercept_errors on|off
默认: fastcgi_intercept_errors off

添加位置: http, server, location 默认情况下,nginx不支持自定义404错误页面,只有这个指令被设置为on,nginx才支持将404错误重定向。

这里需要注意的是,并不是说设置了fastcgi_intercept_errors on,nginx就会将404错误重定向。在nginx中404错误重定向生效的前提是设置了fastcgi_intercept_errors on,并且正确的设置了error_page这个选项(包括语法和对应的404页面)

2.不要出于省事或者提高首页权重的目的将首页指定为404错误页面,也不要用其它方法跳转到首页。

3.自定义的404页面必须大于512字节,否则可能会出现IE默认的404页面。例如,假设自定义了404.html,大小只有11个字节(内容为:404错误)。