关于Typecho的评论地址异常的简单方案
解决博客评论区里的网友网站异常(域名网站被出售或放弃成非法网站内容)的问题。
群里有说,某博主的网站因为评论区里的其它网友对应的域名地址链接变动(出售或放弃成非法网站内容)导致被网信通报停站的情况。
虽然我的站点在港区,但是想着如果网站上有链接地址被跳到花花绿绿网站上也心烦。
我目前的方案是做一个中间页,发现有博友离场放弃网站后,就将这个域名加到黑名单列表里,然后跳转到空白页(或异常处理页)上,但是不知道在墙内的友友们使用这种方法可以避免约谈不?
方式很简单
在博客根目录下建一个跳转目录,如 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=网友域名。网友域名不在黑名单里直接跳转,域名在黑名单里就拦截处理。
后续如果有新增,直接修改block.txt文件即可。
仅是一个简单的方案思路,没有弄成插件之类的。其它博客程序应用上大同小异,可以自行扩展(任意修改),对应文件打包(linkredirect.zip)。
没用的,花花绿绿的网站得删除才行
原理来说,应该有些隔离作用。😆
方法不错,有空我也加上。🌹
能有点用就好。随便取用。🌹
这个方法挺不错的!为自己着想,也为他人着想。
一个简单的参考。😋
这个我之前也看到有人发文说这个事,因此我当时也想修改一下,结果一忙给忘了。
你这个办法的确不错,可作参考。也可以参考知乎的
抛砖引玉。大神们应该有更好的方法。