专栏首页张戈的专栏解决网站404页面返回200状态码问题

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

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

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

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

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

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

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

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

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

curl -o /data/wwwroot/zhangge.net/xxxx/404.html https://zhangge.net/404/404

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

error_page 404=/xxxx/404.html;

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

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

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

error_page 404 /xxxx/404.html;

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • DIY一个又有趣又好玩的404页面,降低跳出率

    中国博客联盟(zgboke.com)已经上线有一段时间了,发现 404 页面居然还是服务器默认的白底黑字风格,用户体验非常差劲! ? 于是,决定 DIY 一个 ...

    张戈
  • cat命令详解

    cat 命令是 linux 下的一个文本输出命令,通常是用于观看某个文件的内容的; cat 主要有三大功能: 1.一次显示整个文件。 如 cat   filen...

    张戈
  • SEO分享:让百度删除不想收录的域名或快照的最快方法

    个别网站可能会出现以下类似困扰: ①、百度收录了自己不想收录的域名,造成内容重复,比如张戈博客,百度近一半的收录是 www 的域名,而且收录的内容还是重复的!实...

    张戈
  • 为爱❤心助力!替换网站的404为腾讯宝贝回家把404页面利用起来!

    相信大家对404都是不陌生的,在一个站点的帖子找不到的时候都会进入404页面。

    空木白博客
  • Thinkphp框架自定义404页面

    404页面我们在浏览网页的过程中都遇到过,简单来说就是搜索的东西服务器无法找到,给你返回一个提示信息,但是真正的404意义又是什么呢?请查看文章:404的真正意...

    申霖
  • $.cookie is not a function;原因及解决办法

    一、没有引入jQuery库文件 二、jQuery库文件和jquery.cookie.js文件的顺序问题。须先引入jQuery库文件再引入cookie插件文件 ...

    用户1214487
  • 图文简述HBase的用途(二)

    昨天,我们讲到了HBase的逻辑结构,今天我们来看一下HBase的存储及访问原理。

    希望的田野
  • ICLR 2019评审意见上线:论文得分中位数连年下滑,最高分论文出炉

    这两天,openreview网站放出了这些论文的评审结果,推特网友Horace He顺势抓取了上面的评分,统计了今年已放出论文的总体情况。

    量子位
  • cat命令详解

    cat 命令是 linux 下的一个文本输出命令,通常是用于观看某个文件的内容的; cat 主要有三大功能: 1.一次显示整个文件。 如 cat   filen...

    张戈
  • 复习:GoF的23种设计模式之Bridge模式(结构型)

    假如:我们经常继承父类,有实现父类抽象方法的,也有继承父类增加方法(功能)的。那么会出现如下图的层次结构:

    营琪

扫码关注云+社区

领取腾讯云代金券