DiscuzX3设置:隐藏外链仅对搜索引擎,用户可正常查看
版权申诉
129 浏览量
更新于2024-08-07
收藏 4KB TXT 举报
"在DiscuzX3论坛系统中,有需求实现一种功能,即全站内容中的外链只对搜索引擎的爬虫屏蔽,而对于实际的网站用户仍然可见。这个功能可以通过修改论坛的核心函数来实现,主要涉及到对链接处理的代码进行调整。"
在DiscuzX3的论坛环境中,有时为了优化SEO(搜索引擎优化)或者防止不必要的外部链接干扰,可能需要对搜索引擎的爬虫隐藏某些外链,但不影响用户正常查看。通过调整`function DiscuzCode`中的`function parseurl`函数,可以达到这个目的。
原代码段如下:
```php
global $_G;
if (!$url && preg_match("/((https?|ftp|gopher|news|telnet|rtsp|mms|callto|bctp|thunder|qqdl|synacast){1}:\/\/|www\.)[^\[\"']+/i", trim($text), $matches)) {
$url = $matches[0];
$length = 65;
if (strlen($url) > $length) {
$text = substr($url, 0, intval($length * 0.5)) . ''. substr($url, -intval($length * 0.3));
}
return '<a href="' . (substr(strtolower($url), 0, 4) == 'www.' ? 'http://' . $url : $url) . '" target="_blank">' . $text . '</a>';
} else {
$url = substr($url, 1);
if (substr(strtolower($url), 0, 4) == 'www.') {
$url = 'http://' . $url;
}
$url = !$scheme ? $_G['siteurl'] . $url : $url;
return '<a href="' . $url . '" target="_blank">' . $text . '</a>';
}
```
要实现仅对搜索引擎蜘蛛屏蔽外链的功能,我们需要在代码中加入白名单机制,使得只有符合特定条件(例如属于白名单的域名)的链接才会被处理。修改后的代码示例:
```php
//--------------代码开始------------
global $_G;
$white_list = array('example.com', 'another-safe-domain.net'); // 添加您需要白名单保护的域名
if (!$url && preg_match("/((https?|ftp|gopher|news|telnet|rtsp|mms|callto|bctp|thunder|qqdl|synacast){1}:\/\/|www\.)[^\[\"']+/i", trim($text), $matches)) {
$url = $matches[0];
$length = 65;
// 检查URL是否在白名单内
if (!in_array(parse_url($url, PHP_URL_HOST), $white_list)) {
// 如果不在白名单内,跳过链接处理,对爬虫隐藏
return $text;
}
if (strlen($url) > $length) {
$text = substr($url, 0, intval($length * 0.5)) . ''. substr($url, -intval($length * 0.3));
}
return '<a href="' . (substr(strtolower($url), 0, 4) == 'www.' ? 'http://' . $url : $url) . '" target="_blank">' . $text . '</a>';
} else {
$url = substr($url, 1);
if (substr(strtolower($url), 0, 4) == 'www.') {
$url = 'http://' . $url;
}
$url = !$scheme ? $_G['siteurl'] . $url : $url;
return '<a href="' . $url . '" target="_blank">' . $text . '</a>';
}
//--------------代码结束------------
```
通过这种方式,当URL不在白名单内的时候,爬虫看到的内容将不会包含外链,而是原文本。而用户在浏览时,仍然可以看到并点击完整的链接。这有助于平衡SEO优化与用户体验之间的需求。
为了确保功能正确执行,需要确保你的论坛已更新到最新版本,并且在修改核心代码之前做好备份,以防意外情况发生。同时,定期检查并更新白名单,以适应网站内容的变化,是非常重要的。
2020-10-29 上传
2014-01-26 上传
2013-06-13 上传
2014-05-03 上传
2013-09-21 上传
2014-02-27 上传
2021-04-25 上传
2015-03-15 上传
推荐NEWS
- 粉丝: 171
- 资源: 110
最新资源
- 探索数据转换实验平台在设备装置中的应用
- 使用git-log-to-tikz.py将Git日志转换为TIKZ图形
- 小栗子源码2.9.3版本发布
- 使用Tinder-Hack-Client实现Tinder API交互
- Android Studio新模板:个性化Material Design导航抽屉
- React API分页模块:数据获取与页面管理
- C语言实现顺序表的动态分配方法
- 光催化分解水产氢固溶体催化剂制备技术揭秘
- VS2013环境下tinyxml库的32位与64位编译指南
- 网易云歌词情感分析系统实现与架构
- React应用展示GitHub用户详细信息及项目分析
- LayUI2.1.6帮助文档API功能详解
- 全栈开发实现的chatgpt应用可打包小程序/H5/App
- C++实现顺序表的动态内存分配技术
- Java制作水果格斗游戏:策略与随机性的结合
- 基于若依框架的后台管理系统开发实例解析