# 古いサイトをそのまま残し、古いリンクをdiscourse内で機能させるにはどうすればいいですか？

**URL:** <https://meta.discourse.org/t/keep-old-site-in-place-and-have-old-links-work-within-discourse/304474>\
**Category:** Product Support\
**Created:** [2024 年 4 月 18 日午後 2:27 UTC](https://meta.discourse.org/t/keep-old-site-in-place-and-have-old-links-work-within-discourse/304474 "2024-04-18T14:27:58Z")\
**Posts on this page:** 1\
**Showing post:** 5

<div class="post-metadata">

**Author:** ![dsims](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/dsims/32/485916_2.png) [@dsims](https://meta.discourse.org/u/dsims)\
**Post date:** [2024 年 4 月 18 日午後 4:46 UTC](https://meta.discourse.org/t/keep-old-site-in-place-and-have-old-links-work-within-discourse/304474/5 "2024-04-18T16:46:16Z")

</div>

💡! これをテーマHTMLのスクリプトで404ページで処理できます…

404ページがブラウザウィンドウを「見つからない」URLにリロードするようにしました。これによりサーバーサイドがヒットします。機能します！唯一の欠点は、リダイレクトが目立ち、実際の404の場合はアプリから離れてしまうことです（サイドバー/ヘッダーが失われます）。

```plaintext
<script type="text/discourse-plugin" version="0.8">
  api.onPageChange((url, title) => {
    const router = api.container.lookup('service:router');
    var is404 = document.getElementsByClassName("page-not-found");
    if (is404.length) {
        const params = new URLSearchParams(router.currentRoute.queryParams).toString();
        let q = "";
        if (params){ q = "?"+params; }
        window.location.replace(window.location.origin + url + q);
    }
  });
</script>

```

---

_[View the full topic](https://meta.discourse.org/t/keep-old-site-in-place-and-have-old-links-work-within-discourse/304474)._
