質問

ヘルプセンターから記事を削除してしまいました。削除済みのヘルプセンター記事からトラフィックをリダイレクトできますか?

回答

免責事項:この記事は説明のみを目的として提供されています。記事内で例示したコードについて、Zendeskはサポートも保証もいたしません。また、Zendeskは、JavaScript、jQuery、CSSなどのサードパーティの技術をサポートすることができません。何か問題があった場合はコメントセクションに投稿するか、インターネットで解決策を探してみてください。

はい、このようなトラフィックのソースに関わらず、URLにアクセスしようとするユーザーを、より役立つページに自動的にリダイレクトすることが可能です。

これらのソリューションを実装する方法:

  1. ナレッジベースで「ナレッジベース管理者」を選択します。
  2. サイドバーにあるデザインをカスタマイズアイコン()をクリックします。
  3. テーマに表示されている「カスタマイズ」をクリックします。
  4. 「コードを編集」をクリックします。
  5. script.jsファイルをクリックします。

Edit_JavaScript_In_Theme_.gif

メモ:この記事に記載されている解決策は、Javascriptリダイレクトを指します。これらのリダイレクトは、Google検索のランキングに影響を与える可能性があります。このため、長期および大規模な展開には適していません。その代わりに、開発者がいる場合は、ヘルプセンターのページリダイレクトにリダイレクトルールAPIを使用します。

一般的なリダイレクトワークフローの実装方法の例については、以下のセクションを参照してください。 

  • 例1:削除済みの記事を新しい記事にリダイレクトする
  • 例2:未翻訳の記事を既存の言語にリダイレクトする
  • 例3:削除済みの記事を特定のページにリダイレクトする
  • 例4:特定のページにリダイレクトされた記事(またはコミュニティ投稿)を一般化または指定する

例1:削除済みの記事を新しい記事にリダイレクトする

これはヘルプセンターに古い削除済みのページがある例です。各ページはこれからリダイレクトする新規ページに対応しています。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と新しい記事IDが配列内で同じ位置にある必要があります。この場合、URLに「217352077」が含まれている記事は「216553098」にリダイレクトされます。「216552968」が含まれている記事は「216552958」にリダイレクトされます。

記事IDを配列内で指定する場合は、各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全体を使用するよう確認してください。列の最後を削除しないでください:"+ 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() {
メモ:最新バージョンの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を使用して、最初に読み込む必要のあるページ内の要素を検索するためです。

Powered by Zendesk