nginx or apache前端禁收录,爬虫,抓取

标签: nginx or apache | 发表时间:2015-07-01 14:47 | 作者:ronin47
出处:http://www.iteye.com

一、Nginx 规则

张戈博客用的是 Nginx,所以直接在 server  中新增如下规则即可:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

 
server
    {
    listen80;
    server_name zhangge.net;
    index index.htmlindex.htmindex.phpdefault.htmldefault.htmdefault.php;
    root  /home/wwwroot/zhangge.net;
    #### 新增规则【开始】 ####
    #初始化变量为空
    set$deny_spider"";
    #如果请求地址中含有需要禁止抓取关键词时,将变量设置为y:
    if($request_uri  ~*"\?replytocom=(\d+)|\?p=(\d+)|/feed|/date|/wp-admin|comment-page-(\d+)|/go"){
         set$deny_spider'y';
    }
    #如果抓取的UA中含有spider或bot时,继续为变量赋值(通过累加赋值间接实现nginx的多重条件判断)
    if($http_user_agent~*"spider|bot"){
     set$deny_spider"${deny_spider}es";
    }
    #当满足以上2个条件时,则返回404,符合搜索引擎死链标准
     if($deny_spider='yes'){
         return403;#如果是删除已收录的,则可以返回404
         break;
     }
     #### 新增规则【结束】 ####
#以下规则略...

Ps:就是将上述代码中“新增规则【开始】”到“新增规则【结束】”内容添加到我们网站的 Nginx 配置-- server 模块 中的 root 指令之后即可。

二、 Apache规则

Apache 测试了半天总是500错误,暂时先放弃了,有时间再来调整!

我自己测试写的规则如下,感兴趣的朋友可以自行测试看看,也许是我环境的问题。

1
2
3
4
RewriteEngineOn
RewriteCond%{HTTP_USER_AGENT}(^$|spider|bot)[NC]
RewriteCond%{REQUEST_URI}(/\?replytocom=(\d+)|\?p=(\d+)|\/feed|\/date|\/wp-admin|wp-includes|\/go|comment-page-(\d+))[NC]
RewriteRule^(.*)$-[F]

Ps:大概思路和Nginx一致,既匹配了蜘蛛UA,又匹配了禁止关键词的抓取,直接返回403(如何返回404,有知道的朋友请留言告知下,测试成功的朋友也敬请分享一下代码,我实在没时间折腾了。)

三、PHP代码版

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
/**
* PHP比robots更彻底地禁止蜘蛛抓取指定路径代码 By 张戈博客
* 原文地址:http://zhangge.net/5043.html
* 申   明:原创代码,转载请注保留出处,谢谢合作!
* 使用说明:将一下代码添加到主题目录的functions.php当中即可。
*/
ob_start("Deny_Spider_Advanced");
functionDeny_Spider_Advanced(){
    $UA=$_SERVER['HTTP_USER_AGENT'];
    $Request_uri=$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'];
    $Spider_UA  ='/(spider|bot|)/i';//定义需要禁止的蜘蛛UA,一般是spider和bot
    //禁止蜘蛛抓取的路径,可以参考自己的robots内容,每个关键词用分隔符隔开,需注意特殊字符的转义
    $Deny_path  ='/\?replytocom=(\d+)|\?p=(\d+)|\/feed|\/date|\/wp-admin|wp-includes|\/go|comment-page-(\d+)/i';
    //如果检测到UA为空,可能是采集行为
    if(!$UA){
        header("Content-type: text/html; charset=utf-8");
        wp_die('请勿采集本站,因为采集的站长木有小JJ!');
    }else{
        //如果发现是蜘蛛,并且抓取路径匹配到了禁止抓取关键词则返回404
        if(preg_match_all($Spider_UA,$UA)&&preg_match_all($Deny_path,$Request_uri)){
             //header('HTTP/1.1 404 Not Found');  
             //header("status: 404 Not Found");      
             header('HTTP/1.1 403 Forbidden');//可选择返回404或者403(有朋友说内链404对SEO不太友好)
             header("status: 403 Forbidden");
              
              
        }
    }
}

使用很简单,将上述PHP代码添加到主题目录下放 functions.php 当中即可。

四、测试效果

测试效果很简单,直接利用百度站长平台的抓取诊断工具即可:

 

点开看看可以发现真的是返回404:

最后,结合张戈博客之前分享的《 SEO技巧:Shell脚本自动提交网站404死链到搜索引擎》即可将这些无用的收录全部删除:

有朋友说我这个是黑帽手法,用户可以访问,而搜索引擎却404,很适合淘宝客网站的商品外链。是什么手法我不清楚,我只知道实用就好!特别是张戈博 客那些外链,都是用/go?url=这个路径来跳转的,现在这样处理后,就算搜索引擎不遵循robots硬是要抓取,就只能抓到404了!

转自张戈的博客



已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [nginx or apache] 推荐:

Apache与Nginx网络模型

- - CSDN博客互联网推荐文章
      Nginx的高并发得益于其采用了epoll模型,与传统的服务器程序架构不同,epoll是linux内核2.6以后才出现的. 下面通过比较Apache和Nginx工作原理来比较.       传统Apache都是多进程或者多线程来工作,假设是多进程工作(prefork),apache会先生成几个进程,类似进程池的工作原理,只不过这里的进程池会随着请求数目的增加而增加.

nginx风头正劲 挑战 Apache 和 IIS

- nikelius - cnBeta全文版
说到Web服务器,Apache服务器和互联网信息服务系统(IIS)服务器是两大巨头;但是运行速度更快、更灵活的对手:nginx正在迎头赶上. 过去的日子对Web服务器管理员来说轻松得很. 如果你管理的部门使用Windows,就使用IIS服务器;如果不是,就使用Apache服务器. 而现在,你在Web服务器方面有了更多的选择;主要的替代服务器之一:开源nginx Web服务器正在迅速发展起来.

Apache 2.4发布 直接瞄准Nginx

- - cnBeta.COM
感谢 tianmao的投递. 新闻来源:solidot. 最流行的Web Server 发布了一个重大升级版, Apache HTTP Server 2.4的一个重要目标是大幅改进性能. 新版改进了缓存、代理模块,会话控制,改进异步读写支持,等等. Apache HTTP Server项目管理委员会和Apache基金会主席Jim Jagielski表示,他们希望终端用户能真正看到性能进步,表示Apache 2.4比许多以速度见长的Web Server更快,例如Nginx.

Apache与Nginx的优缺点比较

- - 企业架构 - ITeye博客
1、nginx相对于apache的优点: . 轻量级,同样起web 服务,比apache 占用更少的内存及资源 . 抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能 . 高度模块化的设计,编写模块相对简单 . 社区活跃,各种高性能模块出品迅速啊 .

Apache与Nginx的优缺点比较

- - 企业架构 - ITeye博客
Apache与Nginx的优缺点比较  . 1、nginx相对于apache的优点: . 轻量级,同样起web 服务,比apache 占用更少的内存及资源 . 抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能 . 高度模块化的设计,编写模块相对简单 .

让Apache 和nginx支持跨域访问

- - ITeye博客
1,如何让Apache支持跨域访问呢? . 修改httpd.conf,windows中对应的目录是:C:\wamp\bin\apache\Apache2.4.4\conf\httpd.conf. 把LoadModule headers_module modules/mod_headers.so 前面的注释删除.

Apache与Nginx的点点滴滴

- - 开源软件 - ITeye博客
1、Apache默认是采用HTTP1.0的,开启HTTP1.1的方式如下:. 2、采用反向代理的参数:ProxyRequests off;. 3、通过Apache代理目标系统,可以修改目标系统response中Set-Cookie中的参数,.   如:domain、path等的修改,格式如下:.    例如:ProxyPassReverseCookieDomain .cnd.com .10.3.20.205.

Nginx 和 Apache 各有什么优缺点?

- - zzm
1、nginx相对于apache的优点:. 轻量级,同样起web 服务,比apache占用更少的内存及资源抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能高度模块化的设计,编写模块相对简单社区活跃,各种高性能模块出品迅速啊. apache 相对于nginx 的优点:.

Jelastic 1.9支持FTP、NGINX缓存、Apache TomEE以及MariaDB 10

- - InfoQ cn
支持Java和PHP的PaaS云服务器托管平台 Jelastic发布了1.9版本,该版本将支持FTP/FTPS和 NGINX缓存. 最新版还支持 Apache TomEE(Apache Tomcat企业版)和 MariaDB 10,后者使得让开发者能够充分利用多源复制、动态列名以及 MariaDB Galera集群.

(转)apache与nginx防御webbench等工具攻击

- - jackyrong
webbench是一个普遍的压力测试工具. Shell代码  收藏代码. 导致打开url缓慢,甚至服务器down机. 实:apache与nginx可以通过http_user_agent这个系统变量来做处理. apache添加rewrite规则:. nginx在server里添加判断. mod_rewrite用”FLAGS”来建立重写条件以及其他属性.