Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >解决网站404页面返回200状态码问题

解决网站404页面返回200状态码问题

作者头像
张戈
发布于 2018-10-10 03:20:47
发布于 2018-10-10 03:20:47
3.4K00
代码可运行
举报
文章被收录于专栏:张戈的专栏张戈的专栏
运行总次数:0
代码可运行

好久没打理博客,突然收到 CDN 流量预警,发现平均每天 40G 流量消耗!what?就现在这个访问量,不存在的。看了下 CDN 日志发现有小人一直在请求博客页面,其中被请求最多的就是 CCkiller 防御工具那个文章地址。

呵呵,我就写一个简单的防御小工具,惹着你啦?实际上我用了 CDN,也并没有安装这个工具,所以想试探、想测试效果的麻烦自己去安装使用,攻击我博客毫无意义,挂了又能怎么样?

废话就扯这么多,进入正题。

看日志的时候,我发现有大量请求到了博客其实并不存在的地址,但是返回码居然是 200??这就不正常了,于是手工访问了一下一个不存在的页面,虽然 WordPress 在前台给我展示了一个 404 页面,但是浏览器显示返回码确实是 200!!纳尼?

还以为 WordPress 更新后改了这个机制呢,把主题下的 404.php 加了一个强行的 404 返回码,发现没有任何效果。

最后发现,居然是自己以前把 404 页面静态化留下的坑!

原因很简单,当时经常有人攻击一些不存在的页面,也就是每次都是动态的 404,服务器自然就容易高负载,因此做了一个静态化处理:

通过 curl 请求一个不存在的地址,触发 404 返回内容,然后保存在网站的某个目录下,比如 xxxx 下面:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
curl -o /data/wwwroot/zhangge.net/xxxx/404.html https://zhangge.net/404/404

然后,在 Nginx Vhost 下新增 404 响应规则:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
error_page 404=/xxxx/404.html;

重启 Nginx 之后,再访问不存在的博客页面的时候,Nginx 就直接返回 404.html 的内容了,从而实现 404 页面的静态化。

但是,Nginx 这里我写错了,导致每次返回 404.html 都是 200 返回码!!这样其实会误导搜索引擎的判断,以为页面是存在的。。。。大坑。

正确的 Nginx 配置方法应该是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
error_page 404 /xxxx/404.html;

也就是不用等号,而是用空格!修改后,重启 Nginx,然后访问不存在的地址发现已经是 404 返回码了,问题解决!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018年09月08日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
如何为Nginx设置404页面?
这篇文章发布于2013年,介绍如何为nginx设置一个404页面,当客户端试图访问一个并不存在的资源时,nginx会返回代码为404的错误信息"404 Not Found",这个错误信息非常简陋并且不是很友好,建议根据实际需求设置一个专用的404错误页面(如果没有要求可以使用下面的“腾讯公益宝贝回家”404页面,也许一个微不足道的举动,却已帮助了别人。两全其美哈)。
用户1560186
2019/11/20
6.4K0
如何为Nginx设置404页面?
shell脚本实现整站缓存和预缓存,进一步提升网站整体加载速度
在 Linux 中,shell 脚本结合系统任务计划 crontab,非常简单就能实现一些复杂程序才能完成的工作,开发成本低,且简单易学。 张戈博客之前也分享过不少 shell 在网站运营方面的妙用,比如: CCKiller:Linux 轻量级 CC 攻击防御工具,秒级检查、自动拉黑和释放 SEO 技巧:Shell 脚本自动提交网站 404 死链到搜索引擎 Linux/vps 本地七天循环备份和七牛远程备份脚本 nginx 日志切割及 7 天前的历史日志删除脚本 Shell+Curl 网站健康状态
张戈
2018/03/21
1.9K0
shell脚本实现整站缓存和预缓存,进一步提升网站整体加载速度
【Nginx07】Nginx学习:HTTP核心模块(四)错误页面与跳转
最最核心的部分学习完了,但其实还有更多的内容要等待着我们探索。今天我们先来看到的就是关于错误页面的设置以及 301、302 跳转相关的内容。这两块内容都有一个特点,那就是页面或明显地,或不明显地产生了跳转变化,显示的都不是本来我们应该要得到的那个链接的页面。
硬核项目经理
2023/09/07
7790
【Nginx07】Nginx学习:HTTP核心模块(四)错误页面与跳转
让你的404页面参与公益事业中
注意经过测试:一个server块允许多个 error_page,但应该要注意Http状态码在多个error_page不要重复!
收心
2023/02/25
9730
启用WP Super Cache纯代码版本之后的一些优化措施
张戈博客在上个月 28 号启用了 WP Super Cache 代码版,几天下来,虽然小问题不断,但是总体感觉非常不错!不管是前台还是后台,速度都有质的提升,着实值得会折腾的人使用。 感兴趣的可以先看下 28 号的具体教程:《WP Super Cache 静态缓存插件纯代码版(兼容多域名网站)》. 下面,简单的说一下启用此功能后遇到的一些问题的解决办法或细项优化。 ①、发表评论时并未删除缓存,导致无法显示最新评论; ②、若主题有登陆状态显示,那缓存之后,无论谁打开都显示已登录; ③、WordPress
张戈
2018/03/23
1.3K0
启用WP Super Cache纯代码版本之后的一些优化措施
3招解决Nginx实现404页面的实现!
Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的。而一个网站项目,肯定是避免不了404页面的,通常使用Nginx作为Web服务器时,有以下集中配置方式,一起来看看,更多内容请参考《Linux就该这么学》。
拓荒者
2019/08/16
4.8K0
Apache/Nginx伪静态规则匹配http://出现的问题与解决
这个问题不知道有没有人遇到过,反正度娘和谷姐都没能帮到我!困扰了我挺长时间了,今天偶尔将代码放到 Apache 服务器下测试时,意外解决了! 问题是这样的,我搭建了一个网站 icon 图标抓取的 AP
张戈
2018/03/23
2K0
Apache/Nginx伪静态规则匹配http://出现的问题与解决
Wordpress设置腾讯公益404页面
Wordpress主题会自带404页面,如果需要替换成自定义的需要修改404.php页面,这里以腾讯公益404页面为例介绍下怎样自定义页面,如果大家没有特定的404页面可以设置成公益404页面。
三杯水Plus
2019/12/10
1.1K0
Wordpress设置腾讯公益404页面
Nginx开启fastcgi_cache缓存加速,支持html伪静态页面
张戈博客不久前分享过 Nginx 开启缓存为 WordPress 加速的教程,其中分享了 2 种缓存模式:代理模式和本地模式。我一直以为单个 ngx_cache_purge 缓存模块只支持 proxy
张戈
2018/03/23
3.6K0
Nginx开启fastcgi_cache缓存加速,支持html伪静态页面
CCKiller:Linux 轻量级 CC 攻击防御工具
根据文章内容和用户输入,对摘要进行总结。
张戈
2017/05/27
8K3
CCKiller:Linux 轻量级 CC 攻击防御工具
网站静态内容出版解决方案
目录 1. 架构总览 2. cdn 3. www 服务器 4. cms 服务器 5. img 6. Ajax 局部更新与缓存 1. 架构总览 www 负责静态文件浏览, 台数不定, 可以采用零成本的DNS轮询, 或者4层LVS, 或者7层HAProxy, 还可以用F5, Array 等负载均衡设备. cms 负责静态文件生成. 生成后的文件要同步到www中, 或者采用网络共享, 再者使用分布式文件系统, 总之将生成的文件交给www服务器, 根据你压力横向扩展即可 img 负责图片文件浏览. 通过给图片加版本
netkiller old
2018/03/05
1.2K0
Nginx设置404错误页面跳转
在server下配置 error_page 以下三种情况都可以起作用, 可以配置在server第一层的任何位置, 不受影响 也可以配置在location里面,我下面代码注释的地方都是可以配置的
拓荒者
2019/08/16
8.9K0
SEO技巧:Shell脚本自动提交网站404死链到搜索引擎
最近在折腾博客主题,通常来说大多数人认为换主题会影响 SEO,实际上只要你把工作都做到位了,是没有任何问题的。比如,换主题后你得仔细检查标题和描述等内容是否发生改变、换主题后是否带来了大量的 404
张戈
2018/03/23
1.3K0
SEO技巧:Shell脚本自动提交网站404死链到搜索引擎
我的wordpress网站为什么会出现那么多404状态码?
最近查看CDN控制台,发现有占比不小的404,4XX状态码的请求出现较多差不多占比有20%左右了,难道是因为我们的网站有死链接,打不开的网页出现吗?
wordpress建站吧
2019/09/04
1.3K0
我的wordpress网站为什么会出现那么多404状态码?
Nginx之error_page模块解读
error_page是nginx一个重要的指令,作用是定制化服务器错误页面。当nginx发生内部错误时,比如说404、403、500等错误,默认会跳转到nginx自带的错误页面。但是使用error_page指令可以修改默认错误页面,并且可以指定跳转的url或者文件路径。
一个风轻云淡
2023/09/24
3.4K0
Nginx实现404页面的三种方法
一个网站项目,肯定是避免不了404页面的,通常使用Nginx作为Web服务器时,有以下集中配置方式:
菲宇
2019/06/12
3.4K0
nginx自定义错误页
文章目录 自定义错误页 1.为每种类型的错误设置单独的处理方式 2.利用在线资源进行处理错误 3.更改晌应状态码 4.设置错误页面案例 自定义错误页 在网站访问过程中,经常会遇见各种各样的错误,如找不到访问的页面则会提示 404 Not Found 错误,没有访问权限会提示 403 Forbidden 等,对于普通人而言,这样的提示界面 并不友好。在 Nginx 的主配置文件中,给出了以下的处理方式。 error_page 500 502 503 504 /Sox.html; 在上述配置中, error
兮动人
2021/06/11
2.8K0
nginx自定义错误页
公益:用404页面寻找失踪的孩子
访问QQ空间一个不存在的页面(404页面),如:http://qzone.qq.com/404,就能看到关于失踪孩子的信息:
雾海梦曦
2022/11/04
1.7K0
公益:用404页面寻找失踪的孩子
为网站开启Nginx缓存加速,支持html伪静态页面
上一篇文章分享了如何开启 Nginx 的缩略图功能,也提到了 Nginx 缩略图在完美替代七牛缩略图或 PHP 缩略图的同时,还会带来一定的 CPU 负载消耗。 因此,本文就来分享一下如何解决这个实时生成缩略图带来的 CPU 开销问题。 思路很简单,既然你要实时生成,那我就将你生成的缩略图缓存一份好了!在我测试期间发现,Nginx 的缓存也同样可以缓存伪静态的 html 页面,完全可以替代 WP-Super-Cache 这类缓存插件了。相信大部分 CDN 也是用的这个原理,比如百度云加速,我们可以在 hea
张戈
2018/03/23
4.1K0
为网站开启Nginx缓存加速,支持html伪静态页面
如何自定义404页面?云服务器+Nginx中加3行配置搞定,小白也能跟着流畅操作
前面3期文章,我们一起搭建了一个个人网站:https://www.python-office.com
程序员晚枫
2022/06/20
1.6K2
如何自定义404页面?云服务器+Nginx中加3行配置搞定,小白也能跟着流畅操作
推荐阅读
相关推荐
如何为Nginx设置404页面?
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文