昨天写了一个用header处理跳转,防止被搜索引擎误解的方法,其实就是301和302的关系.今天要转载一篇相对处理方法较多,且更实用的方法
原文来自:http://www.eamonning.com/blog.php?id=309
回到主题,有些网站常常因为需要进行常规维护或者因为某些原因(黑客)而不得不临时关闭,如果用户或者搜索引擎在这个时候访问临时关闭的网站,这将会影响网站的声誉或者排名流量。因此做好网站临时关闭的一些工作。
下面我将教大家怎么处理好网站临时关闭时跟用户还有搜索引擎的一些三角关系!
让用户与蜘蛛知道网站正在维护
当一家餐厅的老板,因为某些原因不得不临时关闭餐厅,老板会在餐厅门口贴公告,告知顾客餐厅临时关闭以及恢复营业的时间,这样顾客就不会误以为 餐厅倒闭,而不再次光临。同样的道理也可以套用在网站上,如果一个网站因为某些原因必须临时关闭,那么站长有责任通知蜘蛛还有用户,并告知恢复的时间,这 样蜘蛛还有用户才会再次访问网站,而不是误以为网站已经永久关闭。
网络的世界比较复杂,因此告知用户与蜘蛛是一名艺术,下面我们列举两个站长朋友经常犯的错误。
错误一,网站关闭没有告知
有些网站没有做好告知工作,随随便便就把网站关闭,导致用户以及蜘蛛访问时,显示404页面。
最糟的情况是,用户以及蜘蛛会误以为网站已经倒闭,而不会再次光临,就跟餐厅一样,关门,没有贴公告,同样的其顾客会以为餐厅已经倒闭了,下次不会再来了。
错误二,单一页面告知
有些站长则会制作一个单一页面,告知用户网站正在维护,并将全站其他的页面都指向这一页面。
这也是非常不智的行为,因为这样做只告知了用户,而没有通知蜘蛛,这样蜘蛛只会以为其他页面被删除了,只剩下这个页面。
我们先复习下几个最常碰到的HTTP状态码
- 200 - 服务器成功返回网页
- 301- 请求的网页已永久移动到新位置。当URLs发生变化时,使用301代码。搜索引擎索引中保存新的URL。
- 302 -请求的网页临时移动到新位置。搜索引擎索引中保存原来的URL。
- 404 - 请求的网页不存在
- 503 - 服务器目前无法使用(由于超载或停机维护)。通常,这只是暂时状态。
如何告知用户以及蜘蛛网站正在维护?
如果我们网站临时关闭,必须告知用户以及蜘蛛,让用户跟蜘蛛知道网站只是临时关闭,而不是永久关闭,这样用户跟蜘蛛就会隔断时间再次访问网站,具体做法是创建一个返回503状态的文件。
1. 创建一个503.php的文件,并把它放到服务器的根目录
- <?php
- header("HTTP/1.1 503 Service Temporarily Unavailable");
- header("Status: 503 Service Temporarily Unavailable");
- header('Retry-After: Sat, 8 Oct 2012 18:27:00 GMT");
- ?>
- <!DOCTYPE HTML>
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>网站名称</title>
- </head>
- <body>
- <h1>网站名称</h1>
- <p>网站维护中</p>
- <p>将于2012/10/8恢复</p>
- </body>
- </html>
第一二句告知搜索蜘蛛网站处理暂时关闭状态,第三句告知搜索蜘蛛,网站将于2012年10月8日18:27从新开放,注意:这里用的是格林威治标准时间。
但是光放一个503信息到服务器里还是不够的,蜘蛛会访问网站不同的页面,因此我们必须引导所有的蜘蛛到503.php这个页面,让蜘蛛知道,整个网站处于临时关闭中,而不是个别页面。
如果站长使用的是Apache/Linux服务器,我们只需在.htaccess设置一下,引导所有的蜘蛛到505.php页面,这里我们要使用302跳转,注意:在这里千万不要使用301跳转,因为301是永久的,在这种情况下会毁灭掉整个网站。
2.引导蜘蛛到503.php
将下面这段代码保存到.htaccess文件,并上传到网站根目录
- Options +FollowSymLinks
- RewriteEngine On
- RewriteBase /
- RewriteCond %{REMOTE_ADDR} !^00.00.00..00
- RewriteCond %{REQUEST_URI}!^/503.php [NC]
- RewriteRule ,* /503.php [R,L]
最后一行的[R, 告知蜘蛛,这个是302跳转,属于暂时的。
这样我们就完成了网站临时关闭的部署,可以放心关站了!
---EOF---
上述的方法其实会更实用一些,关于nginx,就不仔细写了nginx其实还更方便呢...