# テーマコンポーネント経由でトピックのルートエイリアス？

**URL:** https://meta.discourse.org/t/route-alias-for-a-topic-via-theme-component/214167
**Category:** Development
**Created:** [2022 年 1 月 7 日午後 4:33 UTC](https://meta.discourse.org/t/route-alias-for-a-topic-via-theme-component/214167 "2022-01-07T16:33:25Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![gale](https://avatars.discourse-cdn.com/v4/letter/g/a9a28c/32.png) [@gale](https://meta.discourse.org/u/gale)
#### Post date: [2022 年 1 月 7 日午後 4:33 UTC](https://meta.discourse.org/t/route-alias-for-a-topic-via-theme-component/214167/1 "2022-01-07T16:33:26Z")

</div>

Discourse で特定のトピックのルートエイリアスを追加したいと考えています。私の例では、「/events」を「/t/events/42」のエイリアスにしたいです。プラグイン経由でバックエンドルートを定義することなく、クライアントサイドだけでこれを行うことは可能でしょうか？テーマコンポーネント経由でルートと `transitionTo` を追加しようとしましたが、これは UI が正常にページを読み込み、ユーザーが「/events」へのリンクをクリックした場合にのみ機能します。ユーザーが「/events」リンクを直接読み込もうとすると、「おっと！そのページは存在しないか、プライベートです。」というエラーが表示されます。

これは、Discourse が「html5 スタイルのルーティング」を行わないため、サーバーサイドで未知のルートが見つかった場合に SPA を提供し、クライアントサイドルーティングを行うという推測に基づいています。サーバーサイドルートが見つからない場合に、Discourse をクライアントサイドルーティングにフォールバックさせる方法はありますか？もしない場合、すべてのルートエイリアスは、プラグイン経由でバックエンドルートとして登録し、リダイレクトさせる必要があるように思われます。

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [2022 年 1 月 7 日午後 5:37 UTC](https://meta.discourse.org/t/route-alias-for-a-topic-via-theme-component/214167/2 "2022-01-07T17:37:58Z")

</div>

`/admin/customize/permalinks` を参照してください。トピックにリダイレクトされます。それがお望みのものだと思います。

---

<div class="post-metadata">

### Author: ![gale](https://avatars.discourse-cdn.com/v4/letter/g/a9a28c/32.png) [@gale](https://meta.discourse.org/u/gale)
#### Post date: [2022 年 1 月 7 日午後 7:08 UTC](https://meta.discourse.org/t/route-alias-for-a-topic-via-theme-component/214167/3 "2022-01-07T19:08:55Z")

</div>

ああ、そうですか！まさに私が求めていたもので、すでに組み込まれていたことに気づきませんでした。ありがとうございます！
