网页503状态码应用实例教程
网站需要临时维护,这是个经常性的问题,在这期间必须关闭网站一小段时间,而在这段维护的期间内,应该做些什么,应该向搜索引擎返回什么样的header信息?200?404?500?甚至停止解析?
都不是,这个时候我们应该借助503.
我认为503状态码最大的作用是告知搜索引擎:现在服务器压力过大,网站(某个网页)稍后再抓取,503是指目前无法使用服务器(由于超载或进行停机维护)。通常,这只是一种暂时的状态。按照百度的说法,网站关闭或其他临时情况,这个时候网站应该返回:“503 Service Temporarily Unavailable”!使用503状态码,而不是404错误页面。
如果网站需要临时维护或者未建立好就上线的页面,当网页不能打开时以及没有建好时,不要立即返回404,建议使用503状态。503可以告知百度spider该页面临时不可访问,请过段时间再重试。
如果返回404状态码,会被百度当成死链删除,造成收录和流量损失。使用503返回码,这样百度的抓取器接到503返回码后,会在隔一段时间再去访问这个地址,在您的页面建好上线后,就又能被重新抓取,保证页面及时被抓取和索引,避免未建好的内容设为404后带来不必要的收录和流量损失。
常见的HTTP状态码
200:服务器成功返回网页
404:404返回码的含义是“NOT FOUND”,百度会认为网页已经失效,那么通常会从搜索结果中删除,并且短期内spider再次发现这条url也不会抓取。
301:301返回码的含义是“Moved Permanently”,百度会认为网页当前跳转至新url。当遇到站点迁移,域名更换、站点改版的情况时,推荐使用301返回码,尽量减少改版带来的流量损失。虽然百度spider现在对301跳转的响应周期较长,但我们还是推荐大家这么做。
503:503返回码的含义是“Service Unavailable”,百度会认为该网页临时不可访问,通常网站临时关闭,带宽有限等会产生这种情况。对于网页返回503,百度spider不会把这条url直接删除,短期内会再访问。届时如果网页已恢复,则正常抓取;如果继续返回503,短期内还会反复访问几次。但是如果网页长期返回503,那么这个url仍会被百度认为是失效链接,从搜索结果中删除。
503状态码的设置方法
IIS服务器的就好解决,一般回收一下应用程序池即可,或者重启一下IIS。
以下例子,需要配合apache的 .htaccess 重写文件来实现:
仅仅向google的蜘蛛发送HTTP 503:
向除了指定ip外的任何来访者发送 503:
向蜘蛛发送 503,其他来访者返回一个 404 页面:
如果是单页面,可以先建一个503.php文件,
第一二句告知搜索蜘蛛网站处理暂时关闭状态,第三句告知搜索蜘蛛,网站将于2012年10月8日18:27从新开放,注意:这里用的是格林威治标准时间。
但不是把这段代码复制进去就可以了,要切记把所有页面都指向这一个页面,这样做只告知了用户,而没有通知蜘蛛,这样蜘蛛只会以为其他页面被删除了,只剩下这个页面。
但是光放一个503信息到服务器里还是不够的,蜘蛛会访问网站不同的页面,因此我们必须引导所有的蜘蛛到503.php这个页面,让蜘蛛知道,整个网站处于临时关闭中,而不是个别页面。
如果站长使用的是Apache/linux服务器,我们只需在.htaccess设置一下,引导所有的蜘蛛到505.php页面,这里要使用302跳转,注意:在这里千万不要使用301跳转,因为301是永久的,在这种情况下会毁灭掉整个网站。
引导蜘蛛到503.php
将以下代码保存到.htaccess文件,并上传到网站根目录。
最后一行的[R,告知蜘蛛,这个是302跳转,属于暂时的。这样我们就完成了网站临时关闭的部署,可以放心关站了!
百度站长平台的建议和总结:
如果百度spider对您的站点抓取压力过大,请尽量不要使用404,同样建议返回503。这样百度spider会过段时间再来尝试抓取这个链接,如果那个时间站点空闲,那它就会被成功抓取了
如果站点临时关闭或者页面暂未建好上线,当网页不能打开时以及没有建好时,不要立即返回404,建议使用503状态。503可以告知百度spider该页面临时不可访问,请过段时间再重试。
关于 X-Powered-By:
隐藏PHP程序头部发出的:X-Powered-By: PHP/5.2.4类似的信息.尽管这不算是什么安全性的问题,不过这表明服务器正在运行PHP并且包含了当前的版本信息。
可以在php.ini文件中设置:
expose_php = Off
或者在Linux修改主配置文件 httpd.conf
找到:ServerTokens Full 所在行,将其改为:
ServerTokens Prod
没有就添加上面这一行.即可.
修改后: