问题
我已从帮助中心删除文章。是否可以重定向来自已删除帮助中心文章的流量?
回答
是的,无论此类流量来源如何,您都可以自动将访问这些 URL 的用户重定向到更有价值的页面。
访问帮助中心的自定义 JavaScript 文件
要实施这些解决方案,请访问帮助中心的 JavaScript 文件:
- 以管理员身份登录 Zendesk Support。下一步,单击顶栏中的 Zendesk 产品图标 (),然后选择 Guide。
- 在 Zendesk Guide 的右上角,选择 Guide 管理。
- 单击侧栏中的自定义设计图标 ()。
- 单击主题上的自定义。
- 单击编辑代码。
- 单击 script.js 文件。
查看下文示例,了解如何实施常见重定向工作流程:
示例 1:将一组已删除文章重定向到新的同等文章
在本例中,帮助中心有一组旧的已删除页面,每个页面对应一个新的重定向页面。在 JavaScript 文件的前几行中,有一行显示:
$(document).ready(function() {
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,在浏览器中查看文章。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(如果该 URL 已通过白标成为您的 URL)。不要移除行尾:"+ newIds[i];"
。这是循环将新文章 ID 添加到您 URL 的方式。没有它代码会失效。
示例 2:将未翻译文章重定向到现有语言
在此示例中,帮助中心内容有多种语言版本。如果您所有的内容都是英语版,但只有部分内容有法语和德语版。尝试访问法语或德语文章的用户将看到出错页面。此代码将访问者从错误页面重定向回现有的英语文章。
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
示例 3:将所有已删除文章重定向到一个特定页面
本例中,帮助中心将所有已删除的文章(不包括社区帖子)重定向到一篇特定的文章。
在 JavaScript 文件的前几行中,有一行显示:
$(document).ready(function() {
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 搜索页面中的元素,该元素需要先加载。