解决博客评论区里的网友网站异常(域名网站被出售或放弃成非法网站内容)的问题。

群里有说,某博主的网站因为评论区里的其它网友对应的域名地址链接变动(出售或放弃成非法网站内容)导致被网信通报停站的情况。

虽然我的站点在港区,但是想着如果网站上有链接地址被跳到花花绿绿网站上也心烦。

我目前的方案是做一个中间页,发现有博友离场放弃网站后,就将这个域名加到黑名单列表里,然后跳转到空白页(或异常处理页)上,但是不知道在墙内的友友们使用这种方法可以避免约谈不?

方式很简单

在博客根目录下建一个跳转目录,如 linkredirect 。

在里面新建一个index.php页(UTF-8编码),代码内容如下:

<?php
header("Content-type: text/html; charset=utf-8");
// ========================== 文件说明 ==========================//
// 本文件说明:URL二次跳转
// ==============================================================//
$url_c=$_GET['url'];
if($url_c==""){
    exit();
}
$urljump=urldecode($url_c);    
$handle = fopen("block.txt", "r"); // 打开文件
if ($handle) {
    while (($line = fgets($handle)) !== false) {
        $blockurl=trim($line);
        if (strpos($urljump, $blockurl) !== false) {
            //域名在黑名单里
            //header('Location: 404.html');     //跳转到异常处理页
            echo "URL:404【该网站离线】";        //显示异常处理信息
            exit();
        }    
    }
} else {
        //无法打开文件;
        echo "ERROR";
        exit();
}
fclose($handle); // 关闭文件
//正常跳转
header('Location: '.$urljump.'');
exit();
?>

接着目录下创建一个block.txt保存黑名单网址域名,不用加www前缀一行放一个。
如block.txt文件内容:

abc.xyz
123.xyz

接着修改Typecho(v1.2.1)目录下\var\Widget\Base\Comments.php里的(差不多第271行处。做好备份。)

echo '<a href="' . Common::safeUrl($this->url) . '"'

修改为

echo '<a href="/linkredirect/?url=' . Common::safeUrl($this->url) . '"'

结束。

原理很简单,就是对比一下黑名单列表。实际效果就是,点开链接就先跳转 https://你的域名/linkredirect/?url=网友域名。网友域名不在黑名单里直接跳转,域名在黑名单里就拦截处理。

demo.jpg

后续如果有新增,直接修改block.txt文件即可。

仅是一个简单的方案思路,没有弄成插件之类的。其它博客程序应用上大同小异,可以自行扩展(任意修改),对应文件打包(linkredirect.zip)。

标签: typecho, 评论, 网址, 域名变动, 黑名单

已有 24 条评论

  1. 没用的,花花绿绿的网站得删除才行

    1. 原理来说,应该有些隔离作用。😆

  2. 方法不错,有空我也加上。🌹

    1. 能有点用就好。随便取用。🌹

  3. 这个方法挺不错的!为自己着想,也为他人着想。

  4. 这个我之前也看到有人发文说这个事,因此我当时也想修改一下,结果一忙给忘了。
    你这个办法的确不错,可作参考。也可以参考知乎的

    1. 抛砖引玉。大神们应该有更好的方法。

添加新评论

🌹 😀 😁 😂 😄 😅 😆 😉 😊 😋 😎 😍 😘 😴 😚 😷 😱