permalink-ja

From IndieWeb


permalink(パーマリンク)とは、通常、単一の投稿を表現し、取得するためのURLのことです(明示的に「post permalink」とも呼ばれます)。

なぜやるのか

投稿へのリンクが機能し続けるように、投稿のパーマリンクを維持すべきです。これは「クールなURIは変わらない」という意図に基づいています。

方法

設計

Main article: URL design

ほとんどのプロジェクトは、非常に意図的なパーマリンクURL設計を行っています。


IndieWebの実装例

Barnaby Walters

Image Barnaby Walters は、waterpigs.co.uk で動作する Taproot を使用しています:

  • アーティクル
    • http://waterpigs.co.uk/articles/getting-started-with-microformats2/
  • ノート
    • ……

gRegor Morrill

Image gRegor Morrill は、gregorlove.com で ProcessWire を使用しています:

Ethan Yoo

ImageEthan Yoo は、ethanyoo.com で Hugo を使用しています:

  • gRegorと同様に、Ethanのパーマリンクは年と月(/YYYY/MM/)で始まり、その後に スラグ が続きます。月を含めることで、異なる月であれば同じスラグを再利用できるようになります。例えば、Black Lives Matter (2020年8月)Black Lives Matter (2020年10月) は、どちらも "black-lives-matter" というスラグを使用しています。

プロジェクトの例

WordPress

WordPress(オープンソース版)は、以下のパーマリンク構造をサポートしています:

  • 日付と投稿名
    • http://example.com/2014/03/27/sample-post/
  • 月と投稿名
    • http://example.com/2014/03/sample-post/
  • 数字ベース
    • http://example.com/archives/123/
  • 投稿名
    • http://example.com/sample-post/
  • カスタム構造

消失への対処

パーマリンクは毎年消失しています。コンテンツをエクスポートできれば自身のサイトで再ホストできますが、死んだパーマリンクの問題は残ります。死んだパーマリンクを少なくとも「発見可能」にするためのアプローチがいくつかあります。例えば、ウェブ検索エンジンでパーマリンクURLの文字列自体を検索する方法などです。

旧パーマリンクをプレーンテキストで掲載したアーカイブページ

一つのアプローチは、死んだパーマリンクのURLを(ハイパーリンク化せずに)プレーンテキストでリスト化し、新しい場所と共に公開するアーカイブページを作成することです。例:

新しいURLのパスに旧パーマリンクを含める

別のアプローチは、旧パーマリンクをパスの一部に含む新しいページを作成し、アーカイブページから旧ドメインとパスをリンクテキストにしてその新URLへリンクを貼ることです。例:

投稿のパーマリンクを変更する場合

IndieWebサイトのパーマリンク設計を再構築(変更)する場合、古いパーマリンクから新しいものへ HTTP 301 Permanent Redirect レスポンスを送信することが推奨されます(参照:https://developer.mozilla.org/ja/docs/Web/HTTP/Status/301 )。

このような再設計はサイトの他の側面にも影響を与える可能性があり、その一部を以下に記します:

  • 投稿へのコメントレスポンスが投稿のパーマリンクで識別されている場合、それらを新しいパーマリンクを指すように更新する必要があります。
  • 他のウェブサイトの投稿が依然として古いパーマリンクへリンクを貼り、そこに webmentions を送信してくる可能性があります。Webmention受信コードは、これらを新しいパーマリンクへのWebmentionとして適切に認識する必要があります。
  • Bridgyposse-post-discovery を使用して、いくつかのバックフィードWebmentionを新しいパーマリンクへ再送する可能性があります。これらは適切に重複排除(de-dupped)されるべきです。

Hugo のエイリアス(alias)機能による旧URLのリダイレクト

URL管理(Hugo公式)

フロントマターに1つ以上のエイリアスが含まれている場合、Hugoは旧URL(=新URLのエイリアス)用に生成されたページに以下のHTMLコードを追加します。

 <head>
   <title>https://example.com/posts/my-intended-url</title>
   <link rel="canonical" href="https://example.com/posts/my-intended-url"/>
   <meta name="robots" content="noindex">
   <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
   <meta http-equiv="refresh" content="0; url=https://example.com/posts/my-intended-url"/>
 </head>

上記のコードはユーザーを新しいURLへリダイレクトし、検索エンジンのロボットに対してはこの古いページをインデックスしないよう伝えます。

関連項目