qinling072 发表于 2018-11-19 07:45:35

Apache配置——禁止指定user_agent

  有时候去分析访问日志的时候 ,会发现很多的一些非法的访问,或者你不想让它访问的请求,比如说一些比较垃圾的蜘蛛,搜索引擎,360spidert等等,其实,我们可以把这些搜索引擎禁掉的,当你的访问量很大的时候 ,至少有一半都是这些搜索引擎的爬虫造成的,会造成服务器的负担,所以对于一些没必要的搜索引擎,我们就可以禁掉。
  ##没对curl做限制之前
  # curl -xlocalhost:80 www.test.com/forum.php -I
  HTTP/1.1 200 OK
  ## 编辑配置文件,进行限制
  # vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
  RewriteCond %{HTTP_USER_AGENT} ^.*curl.*
  RewriteCond %{HTTP_USER_AGENT} ^.*Firefox/4.0.*
  RewriteRule .* -
  解释说明:
  NC表示不区分大小写
  注:要想限制一些搜索引擎的标识,平时多积累。
http://note.youdao.com/yws/res/5025/WEBRESOURCEbedc506ed7c6f13417b4a9b429dd99a6
  ## 检查并重新加载
  # /usr/local/apache2/bin/apachectl -t
  Syntax OK
  # /usr/local/apache2/bin/apachectl graceful
  ## 测试
  # curl -xlocalhost:80 www.test.com/forum.php -I   
  HTTP/1.1 403 Forbidden
  Date: Sat, 05 Nov 2016 19:03:11 GMT
  Server: Apache/2.2.16 (Unix) DAV/2 PHP/5.3.28
  Content-Type: text/html; charset=iso-8859-1
  ## 现在我们不对curl做限制了
  # vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
  #RewriteCond %{HTTP_USER_AGENT} ^.*curl.*
  RewriteCond %{HTTP_USER_AGENT} ^.*Firefox/4.0.*
  RewriteRule .* -
  ## 检查并重新加载
  # /usr/local/apache2/bin/apachectl -t
  Syntax OK
  # /usr/local/apache2/bin/apachectl graceful
  ##测试
  # curl -xlocalhost:80 www.test.com/forum.php -I      
  HTTP/1.1 200 OK
  ## 用curl -A 来模拟user_agent进行测试
  # curl -A "Firefox/4.0" -x192.168.219.128:80 www.test.com -I
  HTTP/1.1 403 Forbidden
  # curl -A "afslfsjf" -x192.168.219.128:80 www.test.com -I
  HTTP/1.1 301 Moved Permanently
  # curl -A "Firefox/4.0alfsjf" -x192.168.219.128:80 www.test.com -I    
  HTTP/1.1 403 Forbidden
  




页: [1]
查看完整版本: Apache配置——禁止指定user_agent