问题

我已删除帮助中心中的文章。是否可以重定向来自已删除帮助中心文章的流量?

回答

可以,无论流量来源如何,都可以自动将访问这些 URL 的用户重定向到更有价值的页面。

要实施这些解决方案:

  1. 在“知识”中,选择知识管理员
  2. 单击**自定义设计**图标(自定义图标侧栏中的)
  3. 单击主题上的自定义
  4. 单击编辑代码
  5. 单击 script.js 文件

Edit_JavaScript_In_Theme_.gif

注意:文章中的 JavaScript 重定向可能会影响 Google 搜索排名。不适合长期或大规模部署。如果您有开发者,请使用重定向规则 API 进行帮助中心上的页面重定向。

查看以下部分,了解实施常见重定向工作流程的示例:

  • 示例 4:将一组已删除文章重定向到新的同等文章
  • 示例 4:将未翻译的文章重定向到现有的语言
  • 示例 4:将所有已删除文章重定向到一个特定页面
  • 示例 4:概括或指定哪些文章或社区帖子重定向到特定页面

示例 4:将一组已删除文章重定向到新的同等文章

本例中,帮助中心有一组旧的已删除页面,每个页面对应一个新的重定向页面。在 JavaScript 文件的前几行中,有一行显示:

$(document).ready(function() {
注意:如果您使用 Copenhagen 主题的最新版本,则可能缺少此行。在这种情况下,请将代码放在这些侦听器之外:
window.addEventListener("DOMContentLoaded", () => {
}

在该行正上方插入代码:

  var oldIds = ["217352077", "216552968"];
  var newIds = ["216553098", "216552958"];

  for (var i = 0; i < oldIds.length; i++){
    if (window.location.href.indexOf(oldIds[i]) > -1) {
      window.location.href = 'https://YOURSUBDOMAIN.zendesk.com/hc/en-us/articles/' + newIds[i]; 
    }
  }

在保存之前,编辑列出旧的文章 ID 和新的文章 ID 的代码:

  var oldIds = ["217352077", "216552968"];
  var newIds = ["216553098", "216552958"];

添加您的文章 ID,而不是示例中的 ID。要查找文章 ID,在浏览器中查看文章。URL 看起来类似以下示例:

https://[YOURSUBDOMIAN].zendesk.com/hc/en-us/articles/203664386-Help-Center-guide-for-agents-and-end-users

在上面的 URL 中,文章 ID 是 203664386。

要正确重定向,请将新旧文章 ID 放在数组中的相同位置。本例中,URL 包含217352077现在重定向到216553098.文章包含216552968现在重定向到216552958.

在每种情况下,请将这些 ID 放在引号中,并用逗号隔开。示例如下:

  var oldIds = ["217352077", "216552968", "216552902"];
  var newIds = ["216553098", "216552958", "216552944"];

接下来,编辑此行中的 URL:

window.location.href = 'https://yoursubdomain.zendesk.com/hc/en-us/articles/' + newIds[i]; 

使用您的 Zendesk 子域名,如果是白标,则使用整个帮助中心URL。请勿移除行尾:"+ newIds[i];" .此循环会将新文章 ID 附在您的 URL 后面。如果没有它,代码将失败。

示例 4:将未翻译的文章重定向到现有的语言

在此示例中,帮助中心内容有多种语言版本。如果您的所有内容都以英语显示,但只有一些内容以法语和德语显示,则用户在访问这些法语或德语文章时会看到出错页面。此代码可将访问者从出错页面重定向回英语文章。

var notDefaultLanguage = window.location.href.indexOf('/en-us/') == -1;
var isArticle = window.location.href.indexOf('/articles/') > -1;
var isErrorPage = $(".error-page").length > 0;


if ( isArticle && notDefaultLanguage && isErrorPage ) {
    var newURL = window.location.href.replace(/(.*\/hc\/)([\w-]+)(\/.*)/, "$1en-us$3");
    window.location.href =  newURL;
}  

在本例中,您必须进行少量自定义。如果您的默认帮助中心语言不是英语,请替换该语言。在代码中,en-us 出现在两个位置:

var notDefaultLanguage = window.location.href.indexOf('/en-us/') == -1;

和

var newURL = window.location.href.replace(/(.*\/hc\/)([\w-]+)(\/.*)/, "$1en-us$3");

将这两行中的 en-us 替换为您的默认语言代码。您可以在主要文章的 URL 中找到默认语言代码。例如,法语帮助中心页面的 URL 如下例所示:

https://[YOURSUBDOMAIN].zendesk.com/hc/fr/articles/214943538

示例 4:将所有已删除文章重定向到一个特定页面

本例中,帮助中心将所有已删除的文章(而不是社区帖子)重定向到特定的文章。

在 JavaScript 文件的前几行中,有一行显示:

$(document).ready(function() {
注意:如果您使用 Copenhagen 主题的最新版本,则可能缺少此行。在这种情况下,请将建议代码放入一个新的监听器:
window.addEventListener("DOMContentLoaded", () => {
}

在本例中,在该行正下方插入以下代码。请注意,如果您插入以上内容,该代码将不起作用:

if ( window.location.href.indexOf('articles') > -1 && $(".not-found").length > 0 ) {
 window.location.href = 'https://[YOURSUBDOMAIN].zendesk.com/hc/en-us/articles/216553068-error-redirect';
}

在此脚本中,将 URL 替换为用于重定向的文章 URL。

此解决方案仅在您确保.not-found您出错页面上存在类 。

在**JS**链接所在的灰色栏中,单击**主页**链接。在该下拉菜单中查找并选择出错页面。在出错页面中,您会看到一个以代码开头的区域{{#is error 'not_found'}} .示例如下:

{{#is error 'not_found'}}
 <h2>{{t 'nonexistent_page'}}</h2>
 <p>{{t 'mistyped_address_or_moved_page'}}</p>
 {{/is}}

添加新类到 h2 元素或 中的任意元素'not_found' #is标签,如下例所示:

<h2 class="not-found">{{t 'nonexistent_page'}}</h2>

示例 4:概括或指定哪些文章或社区帖子重定向到特定页面

自定义 if 语句时,使此解决方案更具体或更笼统。例如,要从任何已删除文章或社区帖子重定向,请将 if 语句更改为:

if ( $(".not-found").length > 0 )

或者,仅重定向含有单词 的已删除文章buttermilk在标题中,将if语句给:

if ( window.location.href.indexOf('buttermilk') > -1 && $(".not-found").length > 0 )

与第一个解决方案不同,这些解决方案会短暂显示出错页面,然后再重定向到新页面。该脚本使用 JavaScript 搜索页面中必须首先加载的元素。

免责声明:本文仅供说明之用。Zendesk 对代码不提供支持,也不保证代码质量,它们可能会随着时间的推移而过时。Zendesk 不针对第三方技术(例如 JavaScript、jQuery 或 CSS)提供支持。如有任何问题,请将其发布在评论部分,或尝试在线搜索解决方案。

翻译免责声明:本文章使用自动翻译软件翻译,以便您了解基本内容。 我们已采取合理措施提供准确翻译,但不保证翻译准确性

如对翻译准确性有任何疑问,请以文章的英语版本为准。

由 Zendesk 提供技术支持