首页
TVP 最新优惠活动
学习
活动
专区
工具
返回腾讯云官网
众所周知,绝大多数网站都会有一个首选域名,从用户体验考虑,通常站长们还会另外解析一个域名,并设置 301 重定向。例如,用户未输入 www 的时候,仍然可以访问到我们的网站,就像访问 http://baidu.com,会自动跳到 http://www.baidu.com 一样。
理论上,301 重定向是对搜索引擎友好的设置,而且搜索引擎也能识别 301 返回码,从而只收录首选域名。但也有个例!比如,张戈博客刚一上线,我就已经把 www 的域名 301 重定向到了不带 www 域名:
但百度依然收录带 www 的,且 www 的排名更加靠前:
site 了下带 www 的域名,居然收录了 1600 多条:
又比如百度搜索“卢松松”的结果,也是 www 的排在第一:
事实说明,百度对 301 很不敏感,这个问题困扰了我很久,前往百度站长平台多次投诉无果,终于忍无可忍,决定将带 www 的域名做了禁止收录处理,我已做好 www 域名全线被 T 的心里准备。
曾多次搜索过如何禁止搜索引擎收录带 www 或不带 www 的域名的方法,但是都是一些做 301 设置的方法,看来还不够彻底!下面,我就来分享一下彻底禁止搜索引擎收录非首选域名的方法:
提前说明:如果正好和张戈博客相反:你的首选域名是带 www 的,那下面的代码只需要依葫芦画瓢的修改下即可,我就不赘述了。
在网站根目录新建 wrobots.txt 文件,粘贴如下内容:
User-Agent: *
Disallow: /
编辑网站对应的 nginx 配置文件,比如:
vim /usr/local/nginx/conf/vhost/zhangge.net.conf
找到之前 301 跳转的配置,如:
server {
server_name www.zhangge.net;
return 301 $scheme://zhangge.net$request_uri;
}
修改为:
server
{
server_name www.zhangge.net;
root /home/wwwroot/zhangge.net;
location / {
rewrite (.*) http://zhangge.net$1 permanent;
}
location ~ (robots.txt) {
rewrite /robots.txt /wrobots.txt last;
}
}
执行如下命令,重载 nginx 即可生效:
/usr/local/nginx/sbin/nginx -s reload
编辑 .htaccess 文件,将之前的 301 跳转规则替换成如下代码即可:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.zhangge.net [NC]
RewriteRule ^robots.txt wrobots.txt [L]
RewriteCond %{REQUEST_FILENAME} !robots.txt
RewriteRule ^(.*) http://zhangge.net/$1 [R=301,L]
其中第 4 行是关键,表示仅在请求名称非 robots.txt 的时候,才会执行后面的 301 跳转,从而避免第三条规则被覆盖!
用朋友的万网虚拟主机实际测试发现,万网的控制面板已经存在 301 设置了,所以 htaccess 也要做相应修改才行。
在已有的.htaccess 文件的最前面加上如下三行代码即可:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.zhangge.net [NC]
RewriteRule ^robots.txt wrobots.txt [L]
修改后的完整的 htaccess 的内容如下:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.zhangge.net [NC]
RewriteRule ^robots.txt wrobots.txt [L]
#以下为已存在规则:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteBase /
RewriteRule . /index.php [L]
</IfModule>
其他虚拟主机、建站程序,可以参考这个实例来修改即可,注意避免和主机已有的 301 发生规则冲突即可。
分别访问 http://www.zhangge.net/robots.txt 和 http://zhangge.net/robots.txt 可以发现已经是不同的内容了。
如果还不放心,那么可以使用百度站长平台的 robots 工具来检测,效果如图所示:
测试 http://www.zhangge.net/robots.txt:
测试 http://zhangge.net/robots.txt:
从图中的检测结果可知,带 www 域名的 robots 理论上已禁止所有搜索引擎的抓取!
2014/09/26 补充:一大早就看到来自百度站长的 robots 禁封通知,看来是有效果的,就看啥时候把 www 的收录 K 掉:
最新补充:今天在逛博客的时候,在 李明博客发现了一个更简单的方法,我稍微修改了下:
只要在网站的 head 部分加入如下代码即可:
<?php
if($_SERVER['HTTP_HOST'] == '禁止收录域名1')
if($_SERVER['HTTP_HOST'] == '禁止收录域名2')
{
?>
<meta name="robots" content="noindex,nofollow" />
<?php } ?>
比如,如果我要禁止搜索引擎收录带 www 的张戈博客,那么代码如下:
<?php if($_SERVER['HTTP_HOST'] == 'www.zhangge.net') { ?>
<meta name="robots" content="noindex,nofollow" />
<?php } ?>
当访问被禁止收录的 www.zhangge.net 时,head 里面会输出一段禁止搜索引擎索引和跟踪链接的 meta 标签:
而访问首选域名 zhangge.net 的时候,则不会输出这个 META 标记:
异曲同工的实现了和前文相同的功能!额外补充一下相关 meta robots 的说明,请自行选用:
<META NAME="ROBOTS" CONTENT="INDEX,FOLLOW" /> 可以抓取本页,而且可以顺着本页继续索引别的链接
<META NAME="ROBOTS" CONTENT="NOINDEX,FOLLOW" /> 不许抓取本页,但是可以顺着本页抓取索引别的链接
<META NAME="ROBOTS" CONTENT="INDEX,NOFOLLOW" /> 可以抓取本页,但是不许顺着本页抓取索引别的链接
<META NAME="ROBOTS" CONTENT="NOINDEX,NOFOLLOW" /> 不许抓取本页,也不许顺着本页抓取索引别的链接。
特别说明:用这个方法需要取消 301 重定向功能,否则不会有 meta 申明的输出!
无须设置 301 重定向,先在 nginx 配置文件中,将监听www.zhangge.net(非首选域名)的配置修改如下:
server
{
listen 80;
server_name www.zhangge.net;
index index.html index.htm index.php default.html default.htm default.php;
root /home/wwwroot/zhangge.net;
#以下是robots的重写规则
location ~ (robots.txt) {
rewrite /robots.txt /wrobots.txt last;
}
#以下其他需要的规则,和首选域名保持一致
*******
}
然后,在 header.php 里面新增如下代码:
<?php if($_SERVER['HTTP_HOST'] == 'www.zhangge.net') { ?>
<meta name="robots" content="noindex,nofollow" />
<?php } ?>
如此,就双管齐下的做好了禁止搜索引擎收录新站非首选域名的设置!
张戈博客亲自测试发现,就算是加了 robots 限制,百度依然还会索引这个非首选域名:
所以,必须出绝招了,参照《 浅谈 404 问题》和《 服务器反爬虫攻略》,先解封 robots 禁止,然后在 nginx 原有规则里面加入如下第 7 行判断:
server
{
server_name www.zhangge.net;
root /home/wwwroot/zhangge.net;
location / {
#新增判断,如果是百度蜘蛛就返回404!
if ($http_user_agent ~ "Baiduspider") {return 404;}
rewrite (.*) http://zhangge.net$1 permanent;
}
location ~ (robots.txt) {
rewrite /robots.txt /wrobots.txt last;
}
}
现在,无论是用抓取诊断还是用站长之家的模拟抓取,都将返回 404 错误:
为了测试,张戈博客已走上极端,所以并不建议老站做以上极端设置!我只是看不惯百度的傻逼收录行为!
以上就是禁止搜索引擎收录非首要域名的全部教程了,希望对和我一样苦恼的站长有所帮助。由于,这种中途设置禁止收录非常罕见,张戈也只是做下测试,还不知道有什么结果,所以不建议老站轻易尝试!个人强烈建议新站在上线之前就做好这些设置,避免带来和我一样的困扰!另外,由于没有 IIS 环境,所以就没有研究测试 IIS 下的设置方法,感兴趣的站长可以参考文章的思路去研究测试下。
本文分享自 作者个人站点/博客 前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!
代做工资流水公司镇江购房银行流水办理济南流水开具襄阳对公流水价格新乡对公流水样本开封自存银行流水代办许昌入职工资流水代办南阳银行流水开具宜昌房贷流水图片揭阳贷款银行流水查询昆明代办转账流水舟山办银行流水长春个人银行流水价格重庆转账银行流水制作荆州打印对公账户流水德阳做背调工资流水青岛打印房贷收入证明滁州收入证明模板湛江代开工作收入证明嘉兴薪资银行流水样本广州代做购房银行流水无锡做签证流水长春贷款银行流水价格淄博购房银行流水公司成都公司流水制作南京代办背调流水苏州个人流水公司泉州企业贷流水模板湛江查询银行流水单菏泽办银行流水账嘉兴办银行流水账香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤