最新消息:点击查看大S的省钱秘笈

在Nginx下设置正确的404自定义页面解决"软404"错误

Linux Slyar 349浏览 0评论

文章作者:姜南(Slyar) 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。

换了VPS之后的某一天,在Google管理员工具控制台下看到了大量的"软404"错误,查找了一些资料之后发现是自己在Nginx下配置404页面的方法不对才导致了错误的产生,在此记录一下Nginx下正确的404页面配置方法。

404是一个相应代码,表示"页面无法找到"(Page Not Found),Google关于"软404"给出的说法是:

Instead of returning a 404 response code for a non-existent URL, websites that serve "soft 404s" return a 200 response code.

就是说对于那些不存在的URL,服务器并没有返回404(Page Not Found)代码,而是返回了200(OK)代码,而这是不正常的。

之后在其它的搜索结果里我又看到了这样一段话

Soft 404s can occur as a result of configuration errors when an Error Document 404 is specified as an absolute path rather than a relative path.

看完之后恍然大悟,因为我的404自定义页面是有图片和CSS的,而图片跟CSS都是以相对路径(eg. /xxx/xxx)写在页面里的,所以为了能让整站都能看到404页面里的图片,我就把404页面在Nginx里定义成了绝对路径(eg. //www.slyar.com/xxx/xxx),由于页面被当成了外部页面,所以会返回200代码,由此产生了"软404"错误。

知道了错误,那就好办了。将404页面的路径定义为相对路径,至于图片和CSS,只要在页面里使用绝对路径即可。

Nginx下正确的404页面定义方法:

1、VIM编辑Nginx配置文件,用了vhosts的就单独改,没用的直接改nginx.conf

or

2、以相对路径指定404页面

3、:wq保存退出,重新加载Nginx

4、重新检查一下不存在的页面,看是否返回404

curl -I //www.slyar.com/slyar

HTTP/1.1 404 Not Found
Server: nginx/1.0.15
Date: Mon, 27 Aug 2012 08:13:56 GMT
Content-Type: text/html
Content-Length: 2110
Connection: keep-alive

转载请注明:Slyar Home » 在Nginx下设置正确的404自定义页面解决"软404"错误

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (6)

  1. 感兴趣 去我那溜达下
    松露是什么1年前 (2015-07-24)回复
  2. 走过路过 看着不错
    卡丝1年前 (2015-07-22)回复
  3. 支持
    杭州网站建设1年前 (2015-07-11)回复
  4. 我还是返回200...难道是我rp问题
    万达影城4年前 (2013-06-02)回复
  5. 非常感谢~ 问题解决·
    wwek4年前 (2012-12-05)回复
  6. 404再来一些创意也不错的
    鲜活优惠码4年前 (2012-09-12)回复