当前位置: 首页 > news >正文

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错误)

相关文章:

  • pycharm安装以及简单使用教程
  • Android 多渠道打包
  • shell计算工具源码
  • JavaScript之闭包
  • 秒懂sql intersect
  • VUE多项目间跳转保存用户解决方法
  • [Nuget]使用Nuget管理工具包
  • 一名QA的碎碎念
  • [Python] 输入与输出
  • Android Activity生命周期详解
  • Python+Appium自动化环境搭建
  • Unity3D之Legacy动画系统学习笔记
  • 联想关键业务服务器 sysytem X3850 X6 4U机架式服务器
  • mysql 字符集乱码及解决方案
  • android搜索框列表布局,流程及主要步骤思维导图
  • 【EOS】Cleos基础
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • magento 货币换算
  • Mybatis初体验
  • php的插入排序,通过双层for循环
  • PHP的类修饰符与访问修饰符
  • Python 基础起步 (十) 什么叫函数?
  • sessionStorage和localStorage
  • tab.js分享及浏览器兼容性问题汇总
  • 构造函数(constructor)与原型链(prototype)关系
  • 机器学习 vs. 深度学习
  • 容器服务kubernetes弹性伸缩高级用法
  • 什么是Javascript函数节流?
  • 使用Swoole加速Laravel(正式环境中)
  • 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法
  • 我这样减少了26.5M Java内存!
  • 运行时添加log4j2的appender
  • 整理一些计算机基础知识!
  • !!Dom4j 学习笔记
  • (12)Linux 常见的三种进程状态
  • (C语言)深入理解指针2之野指针与传值与传址与assert断言
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (更新)A股上市公司华证ESG评级得分稳健性校验ESG得分年均值中位数(2009-2023年.12)
  • (每日持续更新)jdk api之StringBufferInputStream基础、应用、实战
  • (转)linux 命令大全
  • (转)创业的注意事项
  • .equal()和==的区别 怎样判断字符串为空问题: Illegal invoke-super to void nio.file.AccessDeniedException
  • .net core 微服务_.NET Core 3.0中用 Code-First 方式创建 gRPC 服务与客户端
  • .NET/ASP.NETMVC 大型站点架构设计—迁移Model元数据设置项(自定义元数据提供程序)...
  • .NET/C# 项目如何优雅地设置条件编译符号?
  • .NET8.0 AOT 经验分享 FreeSql/FreeRedis/FreeScheduler 均已通过测试
  • .net中生成excel后调整宽度
  • .php文件都打不开,打不开php文件怎么办
  • .pub是什么文件_Rust 模块和文件 - 「译」
  • @四年级家长,这条香港优才计划+华侨生联考捷径,一定要看!
  • [2013][note]通过石墨烯调谐用于开关、传感的动态可重构Fano超——
  • [2019.3.20]BZOJ4573 [Zjoi2016]大森林
  • [AutoSar]BSW_Com07 CAN报文接收流程的函数调用
  • [BZOJ]4817: [Sdoi2017]树点涂色
  • [C#]无法获取源 https://api.nuge t.org/v3-index存储签名信息解决方法