Confluence - リンクの検証方法

このページの内容

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

本ナレッジベースはアトラシアンの サーバー プラットフォーム向けに記載されたものです。Atlassian Cloud との機能の違いにより、本記事の内容を Atlassian Cloud アプリケーションに適用することはできません。

スペースに複数のページが含まれ、ページのコンテンツに外部 URL に対する複数の参照が含まれる場合があります。

Confluence はこれらのリンクを自動的に検証する方法を提供していないため、ユーザーがこれらの参照で無効なサイトにアクセスするのを防ぎたい場合、管理者は多数の手動作業を行う必要があります。

リンクを自動検証する方法はないため、管理者は 1 ページずつアクセスしてリンクを 1 つずつクリックし、機能していないエントリを手動で修正する必要がある。

これについて、Gathering Interest ステータスの機能リクエストがあります。これはまだ実装されていないため、管理者には引き続きリンクを検証するための回避策が必要となります。

CONFSERVER-55958 - 課題詳細を取得中... ステータス

管理者の負担を軽減するため、一部の作業を自動化し、検証すべきデータを収集する方法を提供します。方法は次のとおりです。 (smile)

  1. まず、対象のスペースのすべてのページで、すべての外部リンクを見つけます。Confluence データベースにはこれらのデータを保存する Links というテーブルがあり、適切なクエリを実行することでリンクを見つけることができます。つまり、データベース内で以下のクエリを実行し、各スペース ページのスペース名ページ、およびリンクのレポートを取得できます。

    SELECT s.spacename as Space, c.title as Page, l.destspacekey as SpaceOrProtocol, l.destpagetitle as Destination
    FROM LINKS l
    JOIN CONTENT c ON c.contentid = l.contentid
    JOIN SPACES s ON s.spaceid = c.spaceid
    WHERE c.prevver IS NULL and s.spacekey = 'YOUR_SPACE_KEY_HERE'
    ORDER BY l.destspacekey
  2. これらの結果を Excel にエクスポートします。エクスポートされると次のようになります。
  3. protocol 列と destination 列の間に新しい列を挿入し、次のようにします。
  4. これが完了すると、スプレッドシートの protocolcolon、および destinationSublimeNotepad++ (または使用したいその他のツール) などのテキスト エディターにコピーできるようになります。これにより、スペースと URL の一覧を取得できます。
  5. URL はスペースの使用をサポートしていないため、実際の URL が作成できるまで、検索置き換えを実行してスペースのトリミングを行います。この処理には他の方法を使用しても構いません。出力は次のようになります。

    http://www.thisisbroken.com.br
    http://www.thisisalsobroken.com.br
    https://confluence.atlassian.com/x/ASEC
    https://confluence.atlassian.com/x/ASEC
    https://confluence.atlassian.com/x/ASEC
    https://confluence.atlassian.com/x/ASEC
    https://confluence.atlassian.com/x/ASEC
    https://confluence.atlassian.com/x/ASEC
  6. 次に、このファイルをどこかへ保存して、ファイルのパス/名前をコピーします (次の手順で必要となります)。
  7. 必要なすべての URL が揃ったところで、それらをテストする必要があります。ここでは次のような bash スクリプトを使用できます。テストに使用するターミナルをホストするコンピューターまたはサーバーに cURL をインストールする必要があります。

    for WEBLINK in $(cat MY/PATH/links.txt); do
    CURLOUTPUT=$(curl -u admin:admin -I -L $WEBLINK 2>/dev/null | grep ^HTTP)
    echo "$WEBLINK :: $CURLOUTPUT"
    done
  8. 上記のスクリプトを実行する前に、MY/PATH/links.txt を、システム内にある、リンクを含むテキスト ファイルのパスで置き換えます。
  9. 完了したら実行します。
  10. ターミナルの出力は次のようになります。

    http://localhost:8090/display/HS/Test+for+PS-263967 :: HTTP/1.1 404 Not Found
    http://localhost:8090/display/HS/Test+for+PS-26396 :: HTTP/1.1 200 OK
    http://localhost:8090/display/HS/Test+for+PS-263965 :: HTTP/1.1 404 Not Found
    http://www.thisisbroken.com.br :: 
  11. これを使用すると、動作していない URL を特定できます。上の例では、200 OK 以外の結果を返した URL は壊れています。
  12. このチュートリアルの最初で SQL クエリから生成した URL レポートの結果とクロスチェックして、各ページに壊れた URL が存在することを確認できます。これにより、ページを 1 つ 1 つ確認しなくても壊れた URL にのみ移動して修正することができます。 (smile)


最終更新日 2018 年 6 月 20 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.