一个等号引发的血案(谈Nginx正确的404配置)

 更新时间:2014年08月26日 10:34:29   投稿:junjie  
这篇文章主要介绍了Nginx正确的404配置方法,本文根据实际案例总结而来,可以说是一个等号引发的血案!需要的朋友可以参考下

这是一个血淋淋的教训,这么说一点也不过分。因为最近发生了一个重大问题,网站流量大幅下跌,跌了近80%了。由于事件发生之前做过一些工作,加了大量友链,而且外站权重都相当高,在那天还发生了一次挂马事件,当然也即时解决了。还做了其它一些关键字内、外链优化等等。这样使得查找问题的原因就变的难上加难。偶然的原因发现,百度收录的链接开始出现错误,由于网站URL方式采用的目录式结构,最后一个字符都是/,然而百度收录的页面却无缘无故把这个线去掉了,而这种访问方式,我并没有做兼容。当时也查看了网站页面上的重写结果,没有发现哪里页面的链接出现过这种错误,那么百度里收录的这些页面从何而来?真的不得而知了。可能是外链里有些地址把那个目录后的斜线去掉了?不管它怎么收录的了,尽快做了一下兼容性工作,因为那种错误链接会被转到404页面上去。刚刚又查了一下,发现了一点蹊跷。

以下摘自百度百科:

复制代码 代码如下:

404对seo的影响

自定义404错误页面是增强用户体验的很好的做法,但在应用过程中往往并未注意到对搜索引擎的影响,譬如:错误的服务器端配置导致返回“200”状态码或自定义404错误页面使用Meta Refresh导致返回“302”状态码。正确设置的自定义404错误页面,不仅应当能够正确地显示,同时,应该返回“404”错误代码,而不是 “200”或“302”。虽然对访问的用户而言,HTTP状态码究竟是“404”还是“200”来说并没有什么区别,但对搜索引擎这则是相当重要的。


搜索引擎蜘蛛在请求某个URL时得到“404”状态回应时,即知道该URL已经失效,便不再索引该网页,并向数据中心反馈将该URL表示的网页从索引数据库中删除,当然,删除过程有可能需要很长时间;而当搜索引擎得到“200”状态码时,则会认为该url是有效的,便会去索引,并会将其收录到索引数据库,这样的结果便是这两个不同的url具有完全相同的内容:自定义404错误页面的内容,这会导致出现复制网页问题。轻则被搜索引擎降权,重则会K掉网站。

而恰恰我发现这里服务器上nginx里404的配置就有这样一个问题,访问到无效地址的时候,跳转到的404页面返回状态码是200,汗了。怎么会这样?

一个等号引发的血案

最后发现问题的原因是配置里多余的一个“=”导致的这个状态码错误。

现在网上大多数nginx的404配置写法还是error_page 404 = /404.html; 注意这是个错误的写法,正确的写法是没有这个等号的,就是由于这个等号的指引让nginx将404的的错误进入链接都以200正常状态码显示了自定义的404页面,而这对普通用户来说看上去无差异,然而给搜索引擎发出的信号却是致命的。切忌切忌。因为此前的服务器,我一直都是用apache来做的,也是第一次遇到这个问题。改完后用工具检查一下,已经正常了。

其实这个错误如果更好的利用起来的话,还可以将错就错,也是跟业内人交流得知的,当然这就是一个偏门左道的事了,不在这里教坏大家。当然如果外链流量小,或者没有大流量的错误链接流入的话,这个也就不成立了。

最后可以通过这个工具进行检测:

http://www.seochat.com/seo-tools/check-server-headers/

输入一个你网站下的错误的路径,检测出有“HTTP/1.1 404 Not Found”就可以了。

或者使用下面的方法检查更方便,在命令行下输入:

复制代码 代码如下:

# curl -I http://www.yourdomain.com/testurl.html
HTTP/1.1 404 Not Found
Server: nginx/1.4.4
Date: Fri, 10 Jan 2014 02:36:39 GMT
Content-Type: text/html
Content-Length: 1782
Connection: keep-alive
Vary: Accept-Encoding
ETag: “5018ffe4-6f6″

相关文章

  • nginx负载均衡配置,宕机自动切换方式

    nginx负载均衡配置,宕机自动切换方式

    这篇文章主要介绍了nginx负载均衡配置,宕机自动切换方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • nginx实现动静分离的案例详解

    nginx实现动静分离的案例详解

    nginx 和 Tomcat 是两个不同的服务器软件,在分离部署方面有着各自的优势和适用场景,一般来说,Nginx 适合作为反向代理和负载均衡服务器,用于处理静态文件和高并发请求,本文将大家介绍一下nginx实现动静分离的案例,需要的朋友可以参考下
    2023-08-08
  • Nginx正反向代理及负载均衡等功能实现配置代码实例

    Nginx正反向代理及负载均衡等功能实现配置代码实例

    这篇文章主要介绍了Nginx正反向代理及负载均衡等功能实现配置代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • Nginx反向代理实现Vue跨域的示例

    Nginx反向代理实现Vue跨域的示例

    本文主要介绍了Nginx反向代理实现Vue跨域的示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • Nginx如何安装withSSL模块

    Nginx如何安装withSSL模块

    这篇文章主要介绍了Nginx如何安装withSSL模块,Nginx 配置文件,开启ssl访问时经常报错,原因是由于nginx缺少http_ssl_module模块,编译安装的时候带上 --with-http_ssl_module 配置就行了,感兴趣的朋友跟随小编一起看看吧
    2024-04-04
  • prometheus监控nginx的实现

    prometheus监控nginx的实现

    这篇文章主要介绍了prometheus监控nginx的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • Nginx结合keepalived实现双机热备方案

    Nginx结合keepalived实现双机热备方案

    Nginx难免遇见故障,可以使用使用keepalived来实现Nginx的高可用,本文主要介绍了Nginx结合keepalived实现双机热备方案,具有一定的参考价值,感兴趣的可以了解一下
    2024-05-05
  • 设置Nginx允许上传文件的大小的代码详解

    设置Nginx允许上传文件的大小的代码详解

    这篇文章主要给大家介绍了关于设置Nginx允许上传文件的大小的方法,文中通过示例代码介绍的非常详细,对大家学习Nginx有一定的参考学习价值,需要的朋友们下面来一起学习吧
    2024-01-01
  • nginx转发内网图片的代码示例

    nginx转发内网图片的代码示例

    这篇文章主要给大家介绍了nginx转发内网图片,文章通过代码示例介绍的非常详细,对大家的学习或工作有一定的帮助,感兴趣的小伙伴可以自己动手试一下
    2023-10-10
  • nginx 配置静态缓存及静态缓存文件没有生成的问题及解决方案

    nginx 配置静态缓存及静态缓存文件没有生成的问题及解决方案

    这篇文章主要介绍了nginx 配置静态缓存及静态缓存文件没有生成的问题及解决方案,本文分步骤结合实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2023-11-11

最新评论