使用国外虚拟主机时,最要注意的就是流量及CPU占用率是否超过了主机商规定的范围。如果超过了一些限制的话,国外的主机商往往都会先直接关闭你的网站,然后再通知你,“你的资源占用率过高,需要更换其它的主机方案”。有时候你限定的资源超额的原因,并不是因为访客过多,而是因为一些spam对你的网站不断发出链接请求所致。阻止一些spam是相当有必要的(特别是在网站发展到不需要太多搜索引擎的收录的时候)。最常见的阻止spambots访问的方法是建个robots.txt文件上传到网站的根目录,robots.txt文件中的记录通常以一行或多行User-agent开始,后面加上若干Disallow行。举例如:
(禁止百度spider访问网站的任何部分)
User-agent: baiduspider
Disallow:/
(只允许百度spider可以随意访问网站的任何部分,而禁止其它robots及spiders访问)
User-agent: baiduspider
Disallow:
User-agent: *
Disallow: /
但是这样的做法并不能完全阻止robots及spiders进入,因为我们网页中存在着很多的超链接,robots及spiders能通过跟随每个URL链接,来索引一个新的URL。而且有的spambots并不遵守robots.txt,有如百度。所以对于那些不遵守robots.txt的spambots,可以通过修改.htaccess文件来防止其进入,这个修改首先需要确定你的apache支持mod_rewrite模块。添加的修改举例如下:
(禁止百度spider访问)
RewriteCond %{HTTP_USER_AGENT} baiduspider
RewriteRule .* - [F,L]
(禁止IP为123.45.67.8及123.45.67.9访问)
RewriteCond %{REMOTE_ADDR} ^123\.45\.67\.[8-9]$
RewriteRule .* - [F,L]
(禁止百度spider及一些IP的访问)
RewriteCond %{REMOTE_ADDR} ^123\.45\.67\.[8-9]$ [OR]
RewriteCond %{REMOTE_ADDR} ^123\.45\.67\.(8[0-9]|9[0-9]|12[0-9])$ [OR]
RewriteCond %{HTTP_USER_AGENT} baiduspider
RewriteRule .* - [F,L]
如果还是不能对这些spambots及恶意攻击有所限制的话,那么你可以询问主机商是否可以安装mod_security模块,或是选择更换支持mod_securit模块的虚拟主机,以便更好地提高虚拟主机的安全性。
from:Bananaskin