php设置503http状态的几种方法

热度:10438℃ 时间:2015-04-02 来源:佚名


    对于503状态码百度专门做了阐述和建议:如果站点临时关闭,当网页不能打开时,不要立即返回404 ,建议使用503状态。503可以告知百度spider该页面临时不可访问,请过段时间再重试。如果百度spider对您的站点抓取压力过大,请尽量不要使用404 ,同样建议返回503。这样百度spider会过段时间再来尝试抓取这个链接,如果那个时间站点空闲,那它就会被成功抓取了。


    百度这里没有说过段时间是间隔多久,也没有说网站使用503返回码多长时间后百度不再抓取网页。我的建议还是在返回503状态码后还是尽快恢复访问,搜索引擎肯定不会有多大的耐性。

    301重定向,404访问错误都好设置,那如何设置空间或者服务器让网页返回503状态码呢,我在网上找了一种php配合.htaccess文件的设置,有的空间可以直接在控制面板上面设置,除了这两种也许还有其他方法,没仔细找。


仅仅向google的蜘蛛发送HTTP 503:


Options FollowSymLinks
RewriteEngine On
RewriteBase /

RewriteCond % ^.*(Googlebot|Googlebot|Mediapartners|Adsbot|Feedfetcher)-?(Google|Image)? [NC]
# or RewriteCond % ^.*google.* [NC]
RewriteRule .* /cgi-bin/error/503.php

 

向除了指定ip外的任何来访者发送 503:


Options FollowSymLinks
RewriteEngine On
RewriteBase /

RewriteCond % !^1\.1\.1\.1
RewriteCond % !^/cgi-bin/error/503\.php [NC]
RewriteRule .* /cgi-bin/error/503.php

 

向蜘蛛发送 503,其他来访者返回一个 404 页面:


Options FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond % ^.*(Googlebot|Googlebot|Mediapartners|Adsbot|Feedfetcher)-?(Google|Image)? [NC]
RewriteCond % !^/cgi-bin/error/503\.php [NC]
RewriteRule .* /cgi-bin/error/503.php

RewriteCond % !^1\.1\.1\.1
RewriteCond % !^/cgi-bin/error/404\.php [NC]
RewriteRule .* /under-development-explain.html [R=302,L]

 

PHP代码中返回 503:

ob_start(); //这一段是防止已输出的错误header('HTTP/1.1 503 Service Temporarily Unavailable');header('Status: 503 Service Temporarily Unavailable');header('Retry-After:1200'); //通知搜索引擎改日再来header('X-Powered-By:IIS');//构建假的服务器版本信息也可以设置为X-Powered-By: ASP.NET?>



503 Service Temporarily Unavailable

Service Temporarily Unavailable


The server is temporarily unable to service your


request due to maintenance downtime or capacity
problems. Please try again later.

 

 

php空间建议使用php代码直接反悔503http状态码,拷贝以上的代码创建index.php文件。上传到空间的根目录或者是文件夹里即可。 上传完成后最好是是用http工具进行检测下 http头 。查询http状态:http://tool.chinaz.com/pagestatus/