Drupal 中 HTML 链接被双重转义导致渲染异常的解决方案

技术百科 霞舞 发布时间:2026-01-01 浏览:

drupal 节点在前台渲染时出现 url 被错误转义(如 `https://www./link/7783d3eb0cca3f309457d77f15de32e4">`),根本原因是输入格式中启用了“convert urls into links”过滤器,导致已存在的 html `` 标签被二次处理。禁用该过滤器即可修复。

在 Drupal(尤其是 Drupal 7 及兼容输入过滤机制的版本)中,当您在后台富文本编辑器中手动编写包含完整 HTML 的内容(例如

CLICK TO WATCH

)时,系统本应原样输出该标记。但若所选输入格式(如 Filtered HTMLFull HTML)启用了 “Convert URLs into links” 过滤器,Drupal 会主动扫描纯文本中的 URL(如 https://www./link/7783d3eb0cca3f309457d77f15de32e4),并尝试将其包裹为 标签——即使它已被嵌套在已有 标签内。结果就是 URL 被 HTML 实体编码两次,最终渲染为类似:

CLICK TO WATCH

这不仅破坏链接功能,还导致页面结构错乱。

解决步骤如下:

  1. 进入管理后台:Administer → Configuration → Content authoring → Text formats and editors(Drupal 8/9/10 路径);或旧版路径 Administer → Site configuration → Input formats(Drupal 7)。
  2. 找到当前节点使用的输入格式(如 Filtered HTML),点击右侧 “Configure”
  3. 在过滤器列表中,找到 “Convert URLs into links”(对应机器名通常为 filter_url),取消勾选启用状态
  4. 滚动到底部,点击 “Save configuration”
  5. 清除所有缓存(推荐执行 drush cr 或通过管理界面清空“Performance”缓存)。

⚠️ 注意事项:

  • 此过滤器仅对纯文本 URL 生效;若内容已含合法 标签,应禁用该过滤器以避免冲突。
  • 若需保留自动链接功能(如用户评论中输入 https://example.com 自动变链接),建议为不同用途创建独立输入格式(如 Editor HTML 用于管理员、Safe Text 用于用户),并在对应场景中差异化配置。
  • 禁用后,请务必测试现有内容是否正常渲染,并检查其他依赖该过滤器的字段(如摘要、评论)是否仍满足业务需求。

? 总结:Drupal 的输入格式过滤器链是强大但需谨慎配置的机制。“Convert URLs into links” 与手写 HTML 不兼容,属于典型「功能重叠导致副作用」问题。精准控制过滤器启停,是保障前端输出可信、可控的关键实践。


# 将其  # 尤其是  # 并在  # 您在  # 已有  # 已被  # 两次  # 所选  # https  # input  # http  # html  # 编码  # red  # 前端  # href  # 使它  # 本应 


相关栏目: <?muma $count = M('archives')->where(['typeid'=>$field['id']])->count(); ?> 【 AI推广<?muma echo $count; ?> 】 <?muma $count = M('archives')->where(['typeid'=>$field['id']])->count(); ?> 【 SEO优化<?muma echo $count; ?> 】 <?muma $count = M('archives')->where(['typeid'=>$field['id']])->count(); ?> 【 技术百科<?muma echo $count; ?> 】 <?muma $count = M('archives')->where(['typeid'=>$field['id']])->count(); ?> 【 谷歌推广<?muma echo $count; ?> 】 <?muma $count = M('archives')->where(['typeid'=>$field['id']])->count(); ?> 【 百度推广<?muma echo $count; ?> 】 <?muma $count = M('archives')->where(['typeid'=>$field['id']])->count(); ?> 【 网络营销<?muma echo $count; ?> 】 <?muma $count = M('archives')->where(['typeid'=>$field['id']])->count(); ?> 【 案例网站<?muma echo $count; ?> 】 <?muma $count = M('archives')->where(['typeid'=>$field['id']])->count(); ?> 【 精选文章<?muma echo $count; ?>

相关推荐

在线咨询

点击这里给我发消息QQ客服

在线咨询

免费通话

24h咨询:4006964355


如您有问题,可以咨询我们的24H咨询电话!

免费通话

微信扫一扫

微信联系
返回顶部