PHP网站搭建Nofollow属性:PHP合理使用Nofollow以集中页面权重的策略

千宇同学_5012

千宇同学_5012

2026-05-21

156人浏览

原创

php网站可通过五种策略为外链添加rel="nofollow"以集中页面权重:一、正则匹配自动标注站外链接;二、wordpress钩子过滤文章内容;三、discuz!发帖时解析url并规范协议;四、帝国cms手工编写导航代码;五、织梦cms修改channel.lib.php动态注入属性。

php网站搭建nofollow属性:php合理使用nofollow以集中页面权重的策略

如果您在PHP网站中发现页面权重被大量外部链接或低价值内部链接分散,导致核心内容页排名下降,则可能是由于未对非关键链接施加权重控制机制。以下是实现Nofollow属性以集中页面权重的多种策略:

一、为站外链接自动添加rel="nofollow"

该方法通过正则匹配HTML中的href属性,识别非本站域名的链接,并统一注入rel="nofollow",防止权重外泄。适用于文章正文、用户评论等动态内容区域。

1、定义PHP函数content_nofollow,接收原始HTML字符串和白名单域名参数。

2、使用preg_match_all匹配所有href="(.*?)"模式的链接地址。

3、遍历匹配结果,对每个URL执行strpos判断是否包含白名单域名。

4、若不包含,则调用str_replace将原链接替换为添加rel="external nofollow"的新链接。

5、同样处理src属性(如外部图片、脚本引用),避免资源类外链传递权重。

二、WordPress主题中过滤文章内容并增强外链控制

该方法在WordPress的the_content过滤钩子中介入,仅对缺失target="_blank"和rel属性的外部链接补充二者,兼顾用户体验与SEO权重管理。

1、注册add_filter('the_content', 'cn_nf_url_parse')函数。

2、获取当前站点URL作为基准域名,用于比对外链归属。

3、使用正则]*href=("??)([^" >]*?)\1[^>]*>提取全部a标签。

4、对每个匹配到的a标签,检查是否已含target="_blank";如无,则准备添加。

5、检查是否已含rel="nofollow"或rel="dofollow";如无,则准备添加rel="nofollow"。

6、若链接URL不以当前站点URL开头,则将补全后的属性插入原标签闭合前。

三、Discuz!论坛帖子中自动识别并标注外链

该方法专用于UGC密集型场景,在用户发帖时即时解析文本中的URL,强制添加nofollow并规范协议头,防止恶意或低质外链影响站点信誉。

1、在parseurl函数中启用正则匹配:((https?|ftp|gopher|news|telnet|rtsp|mms|callto|bctp|thunder|qqdl|synacast){1}:\/\/|www\.)[^\["']+。

PHP
PHP

编写健壮的PHP代码,规避类型转换陷阱、数组怪癖及常见安全漏洞。

下载

2、若匹配成功,提取完整URL并截断超长链接(长度>65字符时中间插入…)。

3、调用url=nofollow(url)逻辑,确保返回的a标签含rel="nofollow"。

4、对无协议头的www.开头链接,默认前置http://,再统一添加nofollow。

5、对非www.且无协议的URL,拼接$_G['siteurl']构成内部路径,避免误判为外链。

四、帝国CMS导航栏手动控制特定栏目nofollow

该方法适用于静态主导航结构,通过硬编码方式为“关于我们”“联系方式”等低更新频率、零内容扩展性的单页栏目精准添加nofollow,避免首页权重稀释。

1、放弃系统默认导航调用,改用手工编写HTML导航代码。

2、对需设nofollow的栏目链接,显式写入rel="nofollow"属性。

3、同时添加target="_blank"可选属性,确保用户点击时不跳出当前站点上下文。

4、在SQL查询中排除ispart=2(即外部链接类型)的栏目,仅对内部栏目做nofollow标记。

5、验证生成HTML中对应

  • 项的标签是否准确包含rel="nofollow"且无多余空格或引号错误。

    五、织梦CMS(channel.lib.php)主导航动态注入nofollow

    该方法修改底层导航标签库,在生成栏目列表时依据ispart字段值自动判断是否为外部链接,并动态注入target和rel属性,实现逻辑与表现分离。

    1、打开/include/taglib/channel.lib.php文件。

    2、在$needRel分支后插入两行:$row['target'] = ($row['ispart']==2) ? "target='_blank'" : "target='_self'";$row['nofollow'] = ($row['ispart']==2) ? "rel='nofollow'" : "rel='follow'"。

    3、定位$linkOkstr=str_replace("typename", $row['typename'], $linkOkstr);语句。

    4、在其后追加:$linkOkstr=str_replace("target", $row['target'], $linkOkstr); 和 $linkOkstr=str_replace("nofollow", $row['nofollow'], $linkOkstr);。

    5、在模板中导航标签内使用[field:target/]与[field:nofollow/]占位符,使输出可控。

  • php免费学习视频:立即使用
    踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!

    相关文章

    PHP速学教程(入门到精通)
    PHP速学教程(入门到精通)

    PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

    下载

    相关标签:

    php php网站

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

    相关专题

    更多
    php文件怎么打开
    php文件怎么打开

    打开php文件步骤:1、选择文本编辑器;2、在选择的文本编辑器中,创建一个新的文件,并将其保存为.php文件;3、在创建的PHP文件中,编写PHP代码;4、要在本地计算机上运行PHP文件,需要设置一个服务器环境;5、安装服务器环境后,需要将PHP文件放入服务器目录中;6、一旦将PHP文件放入服务器目录中,就可以通过浏览器来运行它。

    2023.09.01

    8904

    6

    php怎么取出数组的前几个元素
    php怎么取出数组的前几个元素

    取出php数组的前几个元素的方法有使用array_slice()函数、使用array_splice()函数、使用循环遍历、使用array_slice()函数和array_values()函数等。本专题为大家提供php数组相关的文章、下载、课程内容,供大家免费下载体验。

    2023.10.11

    5441

    5

    php反序列化失败怎么办
    php反序列化失败怎么办

    php反序列化失败的解决办法检查序列化数据。检查类定义、检查错误日志、更新PHP版本和应用安全措施等。本专题为大家提供php反序列化相关的文章、下载、课程内容,供大家免费下载体验。

    2023.10.11

    1995

    5

    php怎么连接mssql数据库
    php怎么连接mssql数据库

    连接方法:1、通过mssql_系列函数;2、通过sqlsrv_系列函数;3、通过odbc方式连接;4、通过PDO方式;5、通过COM方式连接。想了解php怎么连接mssql数据库的详细内容,可以访问下面的文章。

    2023.10.23

    3368

    4

    php连接mssql数据库的方法
    php连接mssql数据库的方法

    php连接mssql数据库的方法有使用PHP的MSSQL扩展、使用PDO等。想了解更多php连接mssql数据库相关内容,可以阅读本专题下面的文章。

    2023.10.23

    4034

    6

    html怎么上传
    html怎么上传

    html通过使用HTML表单、JavaScript和PHP上传。更多关于html的问题详细请看本专题下面的文章。php中文网欢迎大家前来学习。

    2023.11.03

    3151

    9

    PHP出现乱码怎么解决
    PHP出现乱码怎么解决

    PHP出现乱码可以通过修改PHP文件头部的字符编码设置、检查PHP文件的编码格式、检查数据库连接设置和检查HTML页面的字符编码设置来解决。更多关于php乱码的问题详情请看本专题下面的文章。php中文网欢迎大家前来学习。

    2023.11.09

    4477

    8

    php文件怎么在手机上打开
    php文件怎么在手机上打开

    php文件在手机上打开需要在手机上搭建一个能够运行php的服务器环境,并将php文件上传到服务器上。再在手机上的浏览器中输入服务器的IP地址或域名,加上php文件的路径,即可打开php文件并查看其内容。更多关于php相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

    2023.11.13

    3482

    8

    sprintf函数用法详解
    sprintf函数用法详解

    sprintf函数的用法:1、格式化字符串;2、指定输出宽度和精度;3、返回值。更多关于sprintf函数用法详解的内容,大家可以阅读下面的文章。

    2023.11.27

    11542

    4

    热门下载

    更多
    网站特效
    /
    网站源码
    /
    网站素材
    /
    前端模板

    精品课程

    更多
    相关推荐
    /
    热门推荐
    /
    最新课程
    墨刀帮助中心
    墨刀帮助中心

    共0课时 | 0人学习

    MyEclipse学习中心
    MyEclipse学习中心

    共0课时 | 0人学习

    Apache Subversion 官方手册
    Apache Subversion 官方手册

    共0课时 | 0人学习