很多网站管理员可能都遇到过这样的状况,网站运行的好好的,突然毫无预知地收到一条短信通知,说网站的备案被注销了,第二天再次访问网站,就会发现网站被机房自动屏蔽无法打开了,遇到这种情况,网站管理员应该如何应对呢?我这里就介绍一些个人总结的经验和对策,供网站管理员参考。
首先需要根据工信部备案网站上的电话号码,了解注销备案号的原因,根据大多数人的经验,最大的可能性是因为“空壳网站”(网站接入信息不准确等)的原因,这种情况需要重新提交申请网站备案。
由于重新备案期间国内机房会禁止未备案网站接入,因此为了保证重新备案期间网站的正常运营,网站主应该将主机先迁移到国外的主机服务商,这需根据网站的情况购买一个短期的国外虚拟主机。
如果网站内容不多,并且都是静态HTML文件,那就比较简单,只要将静态文件迁移过去,然后修改域名解析IP即可。目前有些美国虚拟主机不太限制流量,只限制CPU,这对于这类静态网站来说比较合适。
如果是内容很多并且有动态内容的大型网站,处理起来就麻烦一些,首先需要将原来的网站部署到一个已经备案的二级域名上,然后在国外空间安装反向代理程序,回抓二级域名的网站内容。
最简单的配置方法是购买一个国外的vps空间,价格会贵一些,但设置很简单,将域名解析到vps上,然后在vps的.htaccess设置为如下内容。
RewriteEngine On
RewriteBase /
RewriteRule ^(.*)$ http://site.domain.com/$1 [P]
将里面的域名替换为已备案的二级域名即可。
如果不怕麻烦的话,可以购买更为便宜的国外虚拟主机,考虑到国外大部分虚拟主机都不支持直接反向代理功能,因此建议使用一些开源的php反向代理程序来完成这些功能。
基于php的反向代理程序并不太复杂,我从网上找到了两款基于php的网站反向代理程序。
1、php-dynamic-mirror ,就两个文件,非常简单,不过不支持缓存,不支持文本替换,适合做网站的完全镜像。
2、7ghost ,功能倒是比较全面,缓存替换都支持,不过不支持php 5.3以上的版本,会有警告错误,.htaccess文件好像也有点问题,需要修改一下。
在国外空间部署好php反向代理后,设置php配置文件,使其可以抓取已备案二级域名网站,然后将网站的域名解析到国外的主机IP地址上,就可以让未备案的网站继续正常工作了。
网站迁移到国外之后,就可以联系国内的主机商来办理重新备案手续了,根据我的经验,来回可能要折腾几个星期的时间,等办好备案手续后,就可以修改域名解析IP,将网站再迁移到国内。