zoukankan      html  css  js  c++  java
  • Nginx配置error_page 404错误页面

    问题由来

    昨天一网友在segmentfault.com上提问,无法做404重定向

    打开对方的网站随便输入一个错误的地址发现给出了404代码,但是页面完全空白,并没有显示404页面的设定内容

    当时就明白啥情况了,只要在nginx.conf配置文件上加上一句 fastcgi_intercept_errors on,就可以了

    如果没这句的不管是error_page 还是nginx自带的404跳转都不能正常显示(访问不存在的php页面时可能会显示“No input file specified.”)

    什么是404页面

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

    NGINX下如何自定义404页面

    1、更改nginx.conf在http定义区域加入: proxy_intercept_errors或者fastcgi_intercept_errors

    2、更改nginx.conf,在server 区域加入: error_page 404  /404.html  或者 error_page 404 =http://www.xxx.com/404.html

    3、更改后重启nginx,,测试nginx.conf正确性

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

    error_page  500 502 503 504  /50x.html;

    error_page 500 501 502 503 504 @errpage;
    
    location @errpage {
    	access_log logs/access.log maintry;
    	proxy_pass url;
    }
    

    注意事项:

    1、要添加:fastcgi_intercept_errors on  或者  proxy_intercept_errors

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

    这个指令指定是否传递4xx和5xx错误信息到客户端,或者允许nginx使用error_page处理错误信息。你必须明确的在error_page中指定处理方法使这个参数有效

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

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

  • 相关阅读:
    记最近的玄学东西
    AGC032F One Third
    【集训队作业2018】小Z的礼物
    Codeforces 1214 F G H 补题记录
    如何使用Spark大规模并行构建索引
    一次bug死磕经历之Hbase堆内存小导致regionserver频繁挂掉
    ElasticSearch中分词器组件配置详解
    Hadoop2.7.1配置NameNode+ResourceManager高可用原理分析
    分布式日志收集之Logstash 笔记(一)
    海量可视化日志分析平台之ELK搭建
  • 原文地址:https://www.cnblogs.com/chenpingzhao/p/4813078.html
Copyright © 2011-2022 走看看