设置已被百度快照收录页面http状态为404 百度快照删除 内容死链删除

2016年3月5日 0 条评论 2k 次阅读 0 人点赞

之前一个站点没有做伪静态,被百度收录了很多地址(比如http://www.taobaoliao.cn/?id=123),然后开启伪静态之后已经收录页面可以访问,但是全部地址访问后一直显示为首页,这种类型的死链在百度站长工具中不能匹配任何模板或者链接提交删除,

后来想到需要把这种带有?id=**的设置为404,百度才会在蜘蛛访问之后确定为404页面然后删除,

最开始不知道怎么弄,在百度快照删除提交页面用按键精灵写了脚本模拟鼠标键盘一个一个提交快照url,后来之前趁着域名备案的时候设置了一下,然后在用脚本生成了一个silian.txt文件里面包含?id=1到?id=9999的链接,后来百度索引量中没有了这些地址(估计还是在百度快照页面提交的快照url删掉的,因为silian.txt里面包含的文件http状态不为404,),

百度更新快照时间一直没摸准,各种莫名其妙,时间不定,也是对百度seo不熟悉,php也不大熟,今天查看网页快照的时候,发展以前删掉的?id=**的链接全部又出来了,但是此时只是显示索引量为很少的数量,

于是想到可以根据被访问的地址http://www.taobaoliao.cn/?id=123后面的?id=123来转到不能访问的地址,好让百度蜘蛛删除快照或者判断为死链,然后搜索了一下,

一开始想根据伪静态规则,想把?id=123转到一个不存在的地址,

后来发现只要是带?号就判断为不是伪静态地址,所以这个怎么设置都是没有效果,单纯只是用伪静态规则把?id=123的链接转到不存在的地址写法如下(nginx)

rewrite ^(.*)/\?id\=(\d+)$ $1/error last;

反正这是失败的,所以没有测试反斜杠的作用,有兴趣的可以试试,^表示伪静态规则开始,就$表示结束,后面则是实际访问的地址,可以根据实际访问的地址来写入前面伪静态后的地址,具体写法可以百度

参考资料:

http://www.jb51.net/article/50899.htm

http://blog.sina.com.cn/s/blog_7fb6dadd0101ewpn.html
http://www.cnblogs.com/thinksasa/archive/2012/12/16/2820130.html

此法不行,然后发现思路有点偏,于是回到开头,只要提交死链链接且让http状态访问为404,百度站长工具中分为协议死链和内容死链,此处处理为协议死链会比较方便,在php页面中,获取被访问的链接地址如果包含?id=**则将http状态设置为404,经过一番资料查询修改实践,确认此种情形使用的代码如下:

<?php
if(preg_match("/^id=/",$_SERVER['QUERY_STRING'])){
header("HTTP/1.1 404 Not Found");
}
?>

因为带有?号,所以所有?号后的都会被理解为请求数据,所以判断如果其中包含了id字符,则设置http状态为404。

以上参考资料:

http://www.jb51.net/article/38605.htm



Sevenfal

这个人太懒什么东西都没留下

文章评论(0)