質問
ヘルプセンターの記事を削除しました。削除済みのヘルプセンター記事からトラフィックをリダイレクトできますか?
回答
はい、トラフィックの発信元に関係なく、これらのURLを訪問したユーザーを自動的により価値のあるページにリダイレクトすることができます。
これらのソリューションを実装する方法:
- ナレッジベースで「**ナレッジベース管理者**」を選択します。
- サイドバーの「**デザインをカスタマイズ**」アイコン(
)をクリックします。 - テーマに表示されている「**カスタマイズ**」をクリックします。
- 「**コードを編集**」をクリックします。
- **script.js**ファイルをクリックします。
一般的なリダイレクトワークフローの実装例については、以下のセクションを参照してください。
- 例1:削除済みの記事を新しい記事にリダイレクトする
- 例2:未翻訳の記事を既存の言語にリダイレクトする
- 例3:削除されたすべての記事を特定のページにリダイレクトする
- 例 4特定のページにリダイレクトされる記事またはコミュニティ投稿を一般化または指定する
例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を追加します。記事IDを見つけるには、ブラウザで記事を表示します。URLは次の例のようになります。
https://[YOURSUBDOMIAN].zendesk.com/hc/en-us/articles/203664386-Help-Center-guide-for-agents-and-end-users
上記のURLでは、記事IDは203664386です。
正しくリダイレクトするには、古い記事IDと新しい記事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に追加されます。このコードがないと失敗します。
例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」が次の2つの場所に表示されます:
var notDefaultLanguage = window.location.href.indexOf('/en-us/') == -1;
および
var newURL = window.location.href.replace(/(.*\/hc\/)([\w-]+)(\/.*)/, "$1en-us$3");
この2列の「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を使用して、最初に読み込む必要のある要素をページ内で検索します。
翻訳に関する免責事項:この記事は、お客様の利便性のために自動翻訳ソフ トウェアによって翻訳されたものです。Zendeskでは、翻訳の正確さを期すために相応の努力を払っておりますが、翻訳の正確性につ いては保証いたしません。
翻訳された記事の内容の正確性に関して疑問が生じた場合は、正式版である英語の記事 を参照してください。