如果您已经从帮助中心删除了文章,那么您可能已经注意到,用户偶尔仍会尝试访问与这些文章关联的url。无论这些流量的来源如何,您都可以自动将访问这些url的用户重定向到更有价值的页面。
访问帮助中心的自定义JavaScript文件
要实现这个解决方案,你必须首先访问帮助中心的JavaScript文件:
- 以管理员身份登录到Ze亚博ndesk Support。接下来,单击亚博Zendesk产品图标(),然后选择指南。
- 在Zendesk Guide的右上角,选择亚博指导管理。
- 单击自定义设计图标()。
- 点击定制关于你的主题。
- 点击,编辑代码。
- 单击script.j年代文件。
下面是一个访问JavaScript文件的可视化示例:
这篇文章包括几个解决方案,在大多数情况下,可以重定向流量:
- 示例1:将一组已删除的文章重定向到新的对等文章
- 示例2:将未翻译的文章重定向到现有语言
- 示例3:将所有已删除的文章重定向到一个特定页面
- 示例4:概括或指定哪些文章(或社区帖子)重定向到特定页面
示例1
示例2
示例3
示例4
示例1:将一组已删除的文章重定向到新的对等文章
在这个示例中,帮助中心有一组旧的、已删除的页面,每个页面对应一个我们要重定向到的新页面。
在JavaScript文件的前几行中,你会看到一行如下:
$(文档)时函数(){
在该行的正上方插入以下代码:
var oldIds = ["217352077", "216552968"];var newIds = ["216553098", "216552958"];For (var I = 0;i < oldid .length;i++){if (window.location.href.indexOf(oldIds[i]) > -1) {window.location.href = 'https://YOURSUBDOMAIN。亚博zendesk.com/hc/en-us/articles/ ' + newIds[i];}}
在保存它之前,必须自定义这个脚本的一些内容。你要编辑的代码的第一部分在这里:
var oldIds = ["217352077", "216552968"];var newIds = ["216553098", "216552958"];
这是旧文章id和新文章id的列表。在这里添加你的文章id。要查找文章ID,请在浏览器中查看文章(或从分析平台查看URL)。URL看起来像这样:
https:// YOURSUBDOMIAN .亚博zendesk.com/hc/en-us/articles/203664386-Help-Center-guide-for-agents-and-end-users
在本例中,文章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];
确保使用子域名,或者使用整个帮助中心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")。长度> 0;如果(isArticle & & notDefaultLanguage & & isErrorPage) {var newURL = window.location.href.replace (/ (. * \ / hc \ /) ((\ w -]+)(\/.*)/, "$ 1 en - 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 -]+)(\/.*)/, "$ 1 en - us $ 3”);
用默认语言代码替换这两行中的“en-us”。您可以在主要文章的URL中找到默认语言代码。例如,法语帮助中心页面的URL如下所示
https:// YOURSUBDOMAIN .亚博zendesk.com/hc/fr/articles/214943538
“fr”表示国家代码。
示例3:将所有已删除的文章重定向到一个特定页面
在本例中,帮助中心将所有已删除的文章(不包括社区帖子)重定向到特定的文章。
在JavaScript文件的前几行中,你会看到一行如下:
$(文档)时函数(){
在本例中,将以下代码直接插入该行下面。重要的注意事项,插入上述内容(与前一个示例一样)将无法在此示例中工作:
if (window.location.href.indexOf('articles') > -1 && $(".not-found")。长度> 0){
window.location.href = 'https://[YOURSUBDOMAIN].亚博zendesk.com/hc/en-us/articles/216553068-error-redirect';
}
您需要在保存此脚本之前自定义URL。将其替换为您希望帮助中心重定向到的文章URL。
这个解决方案只有在我们确保一个“。错误页面上存在“未找到”类。加1。
在出现“JS”链接的灰色栏中,点击“主页”链接。在该下拉菜单中找到并选择“错误页面”。在错误页面中,您将发现一个以代码开头的区域{{#是错误'not_found'}}
。它看起来像这样:
{{#是错误'not_found'}}
< h2 > {{t ' nonexistent_page}} < / h2 >
< p > {{t ' mistyped_address_or_moved_page}} < / p >
{{/}}
元素中的任何元素添加一个新类“not_found”#
标记,使其看起来像这样:< h2类=“未找到”> {{t ' nonexistent_page}} < / h2 >
现在您已经具备了用于一般删除的文章重定向所需的所有元素。
示例4:概括或指定哪些文章(或社区帖子)重定向到一个特定页面
您可以通过自定义if语句来获得更具体或更通用的解决方案。例如,要从任何已删除的文章或社区帖子重定向,将if语句更改为:
If ($(".not-found")。长度> 0)
或者,为了只重定向标题中有“酪乳”一词的已删除文章,将if语句更改为:
if (window.location.href.indexOf('酪乳')> -1 && $(".not-found")。长度> 0)
与第一个解决方案不同,这些解决方案将简要地显示错误页面,然后重定向到新页面。这是因为我们使用JavaScript在页面中搜索元素,要做到这一点,我们必须首先等待页面加载。
41岁的评论
假设我们想将一个品牌的所有文章重定向到一个新品牌,这可能吗?
谢谢
你好@……,
本文的信息进行了一些修改,以适应您的用例,这是我们为这个问题提供的最佳文档。我会联系我们的版主团队,看看他们是否能提供一些关于这些改变的见解。我们也会在我们的每周文摘中分享这篇文章,这样其他人就可以分享关于如何实现这一目标的建议。
致以最亲切的问候。
嗨@……谢谢,上面的解决方案会跨品牌工作吗?从我所看到的来看,应该是这样,但我想知道SEO可能会受到什么影响。我们渴望保持相关性,同时重定向到我们的新品牌。从版主团队的任何帮助将非常感激。
你好大卫,
文章仍然具有相同的ID
如果您的文章仍然有相同的ID,那么您需要一个重定向行。
更改id的文章
如果您的文章不再具有相同的文章ID,则需要为每篇文章设置一个重定向行。
嗨,大家好,我需要从删除。pdf重定向
所有建议的方法都行不通,有人能帮忙吗?
你好,
我想将未翻译的文章重定向到默认语言文章。
例如,我的默认语言是英语,我有法语翻译。如果一篇文章不存在法语翻译,那么选择法语的用户当前将被重定向到法语主页。但我想把他转到英文文章。
我尝试了下面的代码,但它没有改变任何东西…
关于如何重定向已删除文章的说明,将所有翻译重定向为英文。如何从已删除的文章重定向到用户所使用语言的新文章?我试着从URL中删除EN部分,但奇怪的是它没有什么不同。
编辑:要非常清楚我说的是什么代码:
var oldIds = ["217352077", "216552968"];var newIds = ["216553098", "216552958"];For (var I = 0;i < oldid .length;{if (window.location.href. indexof (oldIds[i]) > -1) {window.location.href = 'https://YOURSUBDOMAIN.亚博zendesk.com/hc/en-us/articles/' + newIds[i];}}
编辑2:事实证明,删除en/ *确实适用于所有语言,只是在发布后花了很长时间才生效。Whoohoo !
https://YOURSUBDOMAIN.亚博zendesk.com/hc/articles/
你好,我们按照上面文章中的说明将未翻译的文章重定向到英文原文。然而,它似乎不起作用:这是一篇英文文章,没有翻译成德语,但如果你把语言切换到德语,它会把你重定向到主页,而不是显示你的英文文章:https://zakeke.亚博zendesk.com/hc/en-us/articles/4514828443932-Test-for-fallback
怎么了?
谢谢
卡洛
你好,
我们正在努力:将一组已删除的文章重定向到新的对等文章
并输入了这些代码,但它们不起作用。你能告诉我们吗?
var oldIds = [" 900000500263 "];
var newIds = [" 900001763763 "];
For (var I = 0;i < oldid .length;我+ +){
if (window.location.href.indexOf(oldIds[i]) > -1) {
Window.location.href = 'https://gogetmy.亚博zendesk.com/hc/en-us/articles/的+ newIds[我];
}
}
鲍里斯·费尔南德斯我只是仔细检查了我的设置,它目前正在使用上面的示例代码,即使没有script.js中的这一行:
$(文档)时函数()
我能想到的一件事可能会导致这个工作不像预期的那样,你可能需要检查你的脚本。js文件是有效的代码语法。如果它有语法错误,它将破坏文件并且不能正确地触发内容。我能看出来助手支持罗瑞例如,如果我试图访问他们试图重定向到的URL,我可以看到script.js在第5行有语法错误,这可能就是为什么这对他们不起作用。您可以在开发控制台中看到,如果script.js在页面加载时抛出错误。
CJ约翰逊不能让它工作。实际上,开发控制台的JS没有错误。不知道我做错了什么。
当您说不需要该函数时,如何在script.js中输入代码?
我测试了error_page。hbs也看看我是否会错过一些东西,但也没有什么。
一切看起来都很简单……
我的是这样的:
这个错误。hbs模板还需要将代码放在一些HTML脚本标记中,因为模板是一个Handlebars文件。在script.js中,这是不必要的,因为它是一个javascript文件。
编辑:另外,不管出于什么原因,当我第一次部署代码时,它花了大约半个小时到一个小时才开始工作。我把它贴在更高的帖子里,我一直试图“修复”它,结果发现它已经工作了,如果我刚刚停止对它大惊小怪,它会在一段时间后开始工作。只是把它扔在那里,因为我忘记了奇怪的长时间等待,它让我认为代码也不能工作!
我知道为什么了。我的代码略有不同。我不是从一个转换到另一个。我只是想重定向任何404到主页的帮助中心
因此,我们使用下面的函数,然后将相应的未找到类添加到错误页面。但是我总是碰到一个“$ is not defined”的错误…(注意,我的脚本是加载的第一个和其他任何顶部)
因此,这里的主要思想是在运行脚本之前使用以下代码完全加载页面。然后如果“
检测到“未找到”以重定向到位置集…
但到目前为止还没有运气。$(文档)时函数(){
如果($(“.not-found”)。长度> 0){
Window.location.href = 'https://xxxxx.xx.xxx”;
}
});
和
你好鲍里斯!您得到该错误的原因可能与您正在使用的模板版本有关。你可以在这篇文章但是总的来说,如果您想使用JQuery函数,现在需要将JQuery导入到您的项目中。只要按照那里的说明去做,然后再测试一次!
我们已经使用这个代码很长时间了,今天它突然停止工作了。我们最近没有以任何方式修改我们的模板,除了添加更多的文章var oldIDS和var newIDs。还有其他人有过这样的经历吗?
嗨,斯宾塞!我最近没有看到任何关于我们这方面的报道。我所见过的唯一“它只是不起作用”或“它停止工作”与从v1切换到v2模板有关,但这听起来不像发生在你身上。这个问题在你的团队中表现如何?您是否在控制台中看到任何错误或在网络选项卡中看到失败的请求?
我在转换到标准语言工作时也遇到了麻烦。我注意到这是jquery请求来计算错误页面类的数量。问题是代码不在
美元(文档)。Ready (function () {
部分。来自Zendesk支持的亚博jsamri提到,它需要成为DOMContentLoaded的一部分,所以我发现jquery函数无法工作,因为它没有包含在某个地方。
我们没有来自zendesk的最新主题,他还提到如果主题是新的,可能需要安亚博装jquery。所以这可能是另一个错误来源如果有人在这一点上仍然挣扎。
看来您的担忧已经在提交的票据上得到了解决。问题在于JQuery请求对错误页面类进行计数。但它需要在$(document)中。Ready (function () {
是的,没错。我没注意到它不在里面。
我如何设置从不同品牌的文章重定向?此外,遵循这个指南对我来说并不奏效;当访问旧文章时,它需要登录,因为它试图访问Zendesk管理员的文章亚博
我试图完成相同的重定向,但与形式。对于最终用户直接链接到表单的情况,我想将流量从旧表单重定向到另一个表单。我很好奇代码块是否工作相同:
我添加并更新了数字和URL,但我不确定它是否不工作,因为这个片段或如果它不工作,因为我的主题变化不适当。
是否可以将此代码片段用于表单,而不仅仅是文章id,或者是否有不同的表单配方?
为了回答我上面的问题,你可以用同样的方法和一些调整来完成从一个表单到另一个表单的重定向:
关于上面片段的注意事项:
存档的文章会改变Explore中的分析吗?
例如,如果我有一个显示文章视图总数的报告,并且我删除了一篇有100个视图的文章,那么报告显示文章视图总数会减少100吗?或者它会跟踪所有的文章视图,而不管它们是否存档?删除呢?
很遗憾,这么多年过去了,还没有一个好的解决方案。我已经请求过很多次了。即使是功能少得多的HelpScout也有一个更好的重定向系统。
是否期望用户在点击原始链接时被定向到“未找到的页面”,然后在2-3秒后发生重定向?我希望用户不要看到这个,因为他们可能会认为这篇文章已经消失了。
谢谢你的反馈。
存档的文章将继续显示并在探索中计数。只有发布数据集的团队。
在另一个数据集中,例如,知识库。亚博官方app在查看过的文章指标中,您将无法看到文章的标题或有关删除或存档文章的信息,但您将能够看到这些文章被查看的次数。
添加度量交互ID,我可以看到那些被删除或存档的文章的ID。
欲知详情,请浏览:Zendesk指南的度量和属性亚博
我希望这对你有帮助!
问候。
胡里奥H,谢谢。我没有在指南:知识库中看到交互ID或道具ID。亚博官方app
你好,
我按照建议添加了代码,它重定向得很好。
我面临的唯一问题是“闪烁”。我在几毫秒内看到“旧”文章内容,然后它重定向到新文章。
有解决这个问题的办法吗?
谢谢
贝利麦克沃特-我相信胡里奥在截图时启用了谷歌翻译,虽然谷歌做得最好,但它并不总是把探索的技术术语理解得很正确。这就是为什么属性的名称不完全匹配。互动ID应该是参与ID,项目ID应该是文章ID。
Aakash吉尔-虽然我没有一个解决方案的页面闪烁由于重定向,也许其他人已经找到了一种方法来帮助减轻这种情况,可以在任何自定义他们所做的!
请登录留下评论。