什么是404页面
如果网站出了问题,或者用户试图访问一个并不存在的页面时,此时服务器会返回代码为404的错误信息,此时对应页面就是404页面。
404页面的默认内容和具体的服务器有关。如果后台用的是NGINX服务器,那么404页面的内容则可能为:
404 Not Found
nginx/0.8.6

为什么要自定义404页面
在访问时遇到上面这样的404错误页面,我想99%(未经调查,估计数据)的用户会把页面关掉,用户就这样悄悄的流失了。如果此时能有一个漂亮的页 面能够引导用户去他想去的地方必然可以留住用户。因此,每一个网站都应该自定义自己的404页面。

NGINX下如何自定义404页面
IIS和APACHE下自定义404页面的经验介绍文章已经非常多了,NGINX的目前还比较少,凑巧我的几台服务器都是NGINX的,为了解决自 家的问题特地对此作了深入的研究。研究结果表明,NGINX下配置自定义的404页面是可行的,而且很简单,只需如下几步:

1.创建自己的404.html页面

2.更改nginx.conf在http定义区域加入:

  1. fastcgi_intercept_errors on;

3.更改nginx.conf在server 区域加入:

  1. error_page 404 = /404.html

4.测试nginx.conf正确性:

  1. /opt/nginx/sbin/nginx t

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

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

配置文件实例:

  1. http
  2.  
  3. {
  4. include mime.types;
  5. default_type application/octet-stream;
  6.  
  7. charset gb2312;
  8. server_names_hash_bucket_size 128;
  9. client_header_buffer_size 32k;
  10. large_client_header_buffers 4 32k;
  11. client_max_body_size 8m;
  12. sendfile on;
  13. tcp_nopush on;
  14.  
  15. keepalive_timeout 60;
  16.  
  17. tcp_nodelay on;
  18.  
  19. fastcgi_connect_timeout 300;
  20. fastcgi_send_timeout 300;
  21. fastcgi_read_timeout 300;
  22. fastcgi_buffer_size 64k;
  23. fastcgi_buffers 4 64k;
  24. fastcgi_busy_buffers_size 128k;
  25. fastcgi_temp_file_write_size 128k;
  26. fastcgi_intercept_errors on;
  27.  
  28. gzip on;
  29. gzip_min_length 1k;
  30. gzip_buffers 4 16k;
  31. gzip_http_version 1.0;
  32. gzip_comp_level 2;
  33. gzip_types text/plain application/x-javascript text/css application/xml;
  34. gzip_vary on;
  35.  
  36. #limit_zone crawler $binary_remote_addr 10m;
  37.  
  38. #65的配置信息
  39. server
  40. {
  41. listen 80;
  42. server_name www.65.la 65.la *.65.la;
  43. index index.html index.htm index.php;
  44. root /opt/www/65;
  45. location ~ .*\.(php|php5)?$
  46. {
  47. #fastcgi_pass unix:/tmp/php-cgi.sock;
  48. fastcgi_pass 127.0.0.1:9000;
  49. fastcgi_index index.php;
  50. include fcgi.conf;
  51. }
  52. error_page 404 = /404.html;
  53.  
  54. #502 等错误可以用同样的方法来配置。
  55. error_page 500 502 503 504 = /50x.html;
  56. ocation = /50x.html {
  57. root html;
  58. }
  59. log_format 65 $remote_addr $remote_user [$time_local] "$request"
  60. $status $body_bytes_sent "$http_referer"
  61. "$http_user_agent" $http_x_forwarded_for’;
  62. access_log /opt/nginx/logs/65.log 65;
  63. }

注意事项:

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错误)。用如下两个不存在的地址去访问:
问一个问题,创建的404页面放在哪儿呢?
我还没去尝试

放在哪里都可以,注意改下这行配置就可以了
error_page 404 = /404.html;

放在哪里都可以,注意改下这行配置就可以了
error_page 404 = /404.html;

也就是说,每个子站都复制一份404文件,可不可以这样
error_page 404 = ../404.html;
只做一套 404放在htdocs下面
本文目前尚无任何 trackbacks 和 pingbacks.
注 意: 评论者允许使用'@user:'的方式将自己的评论通知另外评论者。
例如, ABC是本文的评论者之一,则使用'@ABC:'(不包括单引号)将会自动将您的评论发送给ABC。
user必须和评论者名相匹配,区分大小写。
本文原始链接:http://www.jbxue.com/article/3037.html

nginx中配置404错误页面的教程的更多相关文章

  1. nginx下配置404错误页面

    1.创建自己的404.html页面,并放于网站根目录. 2.更改nginx.conf在http定义区域加入: fastcgi_intercept_errors on; 3.更改nginx.conf(或 ...

  2. NGINX下配置404错误页面的方法分享

    NGINX下配置自定义的404页面是可行的,而且很简单,只需如下几步,需要的朋友可以参考下   1. 创建自己的404.html页面 2.更改nginx.conf在http定义区域加入: fastcg ...

  3. Nginx 核心配置-自定义错误页面

    Nginx 核心配置-自定义错误页面 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 生产环境中错误页面一般都是UI或开发工程师提供的,他们已经在软件中定义好了,我们这里就简单写个h ...

  4. NGINX 配置404错误页面转向

    什么是404页面 如果碰巧网站出了问题,或者用户试图访问一个并不存在的页面时,此时服务器会返回代码为404的错误信息,此时对应页面就是404页面.404页面的默认内容和具体的服务器有关.如果后台用的是 ...

  5. NGINX 配置404错误页面转向

    什么是404页面 如果碰巧网站出了问题,或者用户试图访问一个并不存在的页面时,此时服务器会返回代码为404的错误信息,此时对应页面就是404页面.404页面的默认内容和具体的服务器有关.如果后台用的是 ...

  6. Ubuntu nginx 配置404错误页面

    1.创建自己的404.html页面: 2.更改nginx.conf在http定义区域加入: /etc/nginx# vim nginx.conf 下添加 fastcgi_intercept_error ...

  7. .net配置404错误页面

    如果你的网站出现一堆让人看不懂的报错,那么你就不是一个合格的程序员,也不是一个合格的站长. 下面的方面可以帮助你的网站远离让人头大的页面. 第一步:配置web.config 打开web.config, ...

  8. iis7+php5.6配置404错误页面的问题

    打开错误页,如图1 图1 1.刚开始选择的是“在此网站上执行URL”,/404.html页面可以显示出来,但返回的状态是200,对seo不友好,这样生成的的web.config配置文件如下: < ...

  9. nginx如何配置网页错误页面

    首先要在http模块中加入 fastcgi_intercept_errors on; 其次要在server模块中加入 error_page 403 404 /40x.html; location = ...

随机推荐

  1. Delegate模式

    转载:http://www.cnblogs.com/limlee/archive/2012/06/13/2547367.html 代理模式 顾名思义就是委托别人去做事情. IOS中经常会遇到的两种情况 ...

  2. ArcEngine10.x开发的许可问题

    1. ArcEngine9.x迁至ArcEngine10.x 相信很多同学都知道,在ArcEngine9.x下正常编译的代码到ArcEngine10.x会报错:ArcGIS version not s ...

  3. poj 2486 Apple Tree (树形背包dp)

    本文出自   http://blog.csdn.net/shuangde800 题目链接: poj-2486 题意 给一个n个节点的树,节点编号为1~n, 根节点为1, 每个节点有一个权值.    从 ...

  4. webpack 编译ES6插件babel-loader

    1.安装babel-loader 参考:http://babeljs.io/docs/setup/#installation 进入项目目录执行安装命名: npm install --save-dev ...

  5. KnockoutJS + My97DatePicker

    如何将Knockoutjs和其他脚本库结合使用?这里给出一个Knockoutjs与my97datepicker配合使用的例子,例子中使用了ko的自定义绑定功能: ko.bindingHandlers. ...

  6. 24、java操作xml方法

    XML解析方式 1. SAX解析方式 SAX(simple API for XML)是一种XML解析的替代方法.相比于DOM,SAX是一种速度更快,更有效的方法.它逐行扫描文档,一边扫描一边解析.而且 ...

  7. Java开源内容管理CMS系统J4CMS集成到JTM

    JTM是Win32下绿色免费的JDK + Tomcat + MySQL环境集成工具. 通过JTM用户无需对JDK.Tomcat.MySQL进行不论什么安装和配置就可以迅速搭建支持JSP + MySQL ...

  8. 搭建Hexo博客并部署到Github

    参考: http://www.jianshu.com/p/a67792d93682 http://jingyan.baidu.com/article/d8072ac47aca0fec95cefd2d. ...

  9. java 快速求素数

    package test ; import java.util.Scanner ; public class hello { public static void main(String [] arg ...

  10. 解释-DNS,A记录,CNAME记录,域名转向,SRV记录,TTL值,泛域名与泛解析,域名绑定

    http://www.lihongye.net/post/dns.html DNS DNS,Domain Name System或者Domain Name Service(域名系统或者域名服务).域名 ...