Typecho合集站.  留言 关于 记事本 
首页 > TYPECHO > typecho教程 > typecho插件 > typecho主题 > 网站开发 > PHP > Linux > web > 编程 > 个人收藏 > 互联网旧文 > 互联网趣文

Typecho 实现自动提交 404 死链到站长平台(防重复)

前言

好久没写折腾博客相关技术文章了,今天就记录一下自动记录网站死链到站长平台。

起因

"typecho合集站" 在采集大量文章入库的时候我操作不当导致数据库uid排序错误,为了防止以后出问题执行了【typecho重新排列数据库uid不连续的文章】。

当然不可避免的造成大量 “死链” 导致刚有起色的网站 收录 关键词 流量 暴跌,没办法现在不整理以后问题更大。

82322-3oevw8jqxsp.png

这是百度检测到的,其实还有更多!

思考

最开始我的方案是复制那些百度检测出来的死链,在创建粘贴到txt提交到百度资源平台死链提交

但是这样太麻烦了,没有检测到的怎么办?已经被收录的也有大量死链接,自己检测又麻烦。

后面百度到【WordPress 实现自动提交 404 死链到站长平台(防重复)

代码如下:


<?php
//WordPress 实现自动记录死链地址(防重复)
if(is_404() && strpos($_SERVER['HTTP_USER_AGENT'],'Baiduspider') !== false){
    $file = @file("badlink.txt");//badlink.txt
    $check = true;
    if(is_array($file) && !empty($file))
    foreach($file as &$f){
        if($f == home_url($_SERVER['REQUEST_URI'])."\n")
        $check = false;
    }
    if($check){
        $fp    =    fopen("badlink.txt","a");//badlink.txt 就是在网站根目录的记录死链的文件
        flock    ($fp, LOCK_EX) ;
        fwrite    ($fp, home_url($_SERVER['REQUEST_URI'])."\n");
        flock    ($fp, LOCK_UN);
        fclose    ($fp);
    }
}
?>

思路:检测是否404页面 -> 获取网页url -> 是否记录 -> 没有记录 -> 添加到 badlink.txt ->百度死链地址提交

12837-1tx1dcwo5yv.png

解决

但是上面的办法不适合 Typecho 没办法自己折腾咯,也很简单的。

思路: 404 页面被访问 -> 获取url -> 判断是否已经记录 -> 记录到 silian.txt


<?php
// 实现自动记录死链地址(防重复)全通用版本
// 夏目贵志
// https://xiamuyourenzhang.cn/
// 死链提交地址:https://ziyuan.baidu.com/badlink/index?site=你网站地址

$pageURL = (@$_SERVER['HTTPS'] == 'on') ? 'https://' : 'http://';
$pageURL .= $_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF']; 
// 获取url  判断是否 带https    

$pageURL = str_replace("index.php/","",$pageURL);  
// 看需求是否需要 不需要  //注释掉
// typecho 获取不知道为什么会带index.php 解决办法 替换掉

$s=file_get_contents('silian.txt');  
if(strpos($s,$pageURL) !==false) echo '存在'; 
// 判断 当前url 是否已经被记录  防止重复
 
else file_put_contents("silian.txt", $pageURL."\r\n", FILE_APPEND); 
// silian.txt 会自动生成在 根目录 
// 没有记录 记录当前url 到silian.txt 并且换行

?>

只要复制上面的代码 放到 404.php 页面 随便一个位置就行,silian.txt 会自动创建 记得赋予 404.php 权限 777 让其有写入创建功能

最后

访问 https://ziyuan.baidu.com/badlink/index?site=你网站地址 提交 silian.txt 即可

死链文件:你网站地址/silian.txt

14727-1vj8vfnfce.png

ps:写着文章前提交的,效果很不错。

转载自:https://xiamuyourenzhang.cn/code/81.html


发表新评论


本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除
Theme by
夏目贵志, Powered by Typecho | RSS | sitemap