配置Nginx让网站页面不是给人看的,人看到的只有广告

这个是我的三个域名同在一个空间下的配置:

upstream nq {
server 216.2x4.2x6.1x8:80;
}
server {
    listen 80;
server_name *.(sohu|sina|baidu).com;
#access_log      /home/wwwlogs/nf.log ads;
access_log off;
#set $cache_key $scheme://$host$request_uri$is_args$args;
proxy_set_header   Host   $host;
proxy_set_header   Referer $http_referer;
proxy_set_header   Cookie $http_cookie;
proxy_set_header   X-Real-IP  $remote_addr;
proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
location / {
//允许爬虫访问后端,
if ( $http_user_agent ~* \b(:?googlebot|webcrawler|Bot|Crawl|Spider|slurp|sohu-search|lycos|robozilla)\b ) {
 proxy_pass  http://nq;
        }
//当然也可以写成这样
if ($http_user_agent ~ (Mozilla|Sosospider|Sosos*|Sogou*|Googlebot|Googlebot-Imag|Google*|Baiduspider|Baidu*|msnbot|yodaobot|sohu*|Wget|WordPress|youdao|Yahoo|iaskspider) ) {
proxy_pass http://nq;
}
//下面这段是,判断是否为浏览器,直接301到广告页面,当然还是有遗漏的,目前还有很多的我没用过的浏览器
if ($http_user_agent ~ (MSIE*|Netscape|Konqueror|Firefox|Chrome|Safari|Opera|maxthon) ) {
rewrite ^/(.*)$ http://caopan.me/nofile.html?$1 permanent;    
}
//下面这段是如果上面两个if都不符合,直接让它访问后端。
proxy_pass  http://nq;
}
}

通过这个配置我主要是应用在内容可以让爬虫正常收录,大部分人访问直接到广告页面。

你还可以通过浏览器的语言来判断,按个人需要来处理吧,上面的配置我在检查/home/wwwlogs/nf.log的时候,可以看到爬虫得到是200,我使用了chrome,maxthon,sougo,ie9,firefox,访问当然都是301,当然有很多方法或者写法,我也希望you能给我提供个简单的写法。

最后是我顾虑的问题,万一爬虫它也把自己拌成人,怎么办呢?直接清空收录的数据就玩完了。

所以上面的配置风险高不高,我没有用时间去证明,挂了两天我有了更好的方法,所以把这个共享出来,如果你使用了,请给我个信号,让我知道这个配置的最终结果,是否影响收录和给爬虫处理。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。