summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/client/app/desktop/script.ts2
-rw-r--r--src/client/app/mobile/script.ts2
-rw-r--r--src/server/web/index.ts6
3 files changed, 8 insertions, 2 deletions
diff --git a/src/client/app/desktop/script.ts b/src/client/app/desktop/script.ts
index 95bfe6ec1d..05cd79f706 100644
--- a/src/client/app/desktop/script.ts
+++ b/src/client/app/desktop/script.ts
@@ -147,7 +147,7 @@ init(async (launch) => {
{ path: '/search', component: MkSearch },
{ path: '/tags/:tag', name: 'tag', component: MkTag },
{ path: '/share', component: MkShare },
- { path: '/reversi/:game?', component: MkReversi },
+ { path: '/games/reversi/:game?', component: MkReversi },
{ path: '/@:user', name: 'user', component: MkUser },
{ path: '/@:user/following', name: 'userFollowing', component: MkUserFollowingOrFollowers },
{ path: '/@:user/followers', name: 'userFollowers', component: MkUserFollowingOrFollowers },
diff --git a/src/client/app/mobile/script.ts b/src/client/app/mobile/script.ts
index 52b0d9bbb2..bbbdc0ebb0 100644
--- a/src/client/app/mobile/script.ts
+++ b/src/client/app/mobile/script.ts
@@ -135,7 +135,7 @@ init((launch) => {
{ path: '/search', component: MkSearch },
{ path: '/tags/:tag', component: MkTag },
{ path: '/share', component: MkShare },
- { path: '/reversi/:game?', name: 'reversi', component: MkReversi },
+ { path: '/games/reversi/:game?', name: 'reversi', component: MkReversi },
{ path: '/@:user', component: () => import('./views/pages/user.vue').then(m => m.default) },
{ path: '/@:user/followers', component: MkFollowers },
{ path: '/@:user/following', component: MkFollowing },
diff --git a/src/server/web/index.ts b/src/server/web/index.ts
index 7fd9e76cfc..945176afd3 100644
--- a/src/server/web/index.ts
+++ b/src/server/web/index.ts
@@ -219,6 +219,12 @@ router.get('/info', async ctx => {
});
});
+const override = (source: string, target: string, depth: number = 0) =>
+ [, ...target.split('/').filter(x => x), ...source.split('/').filter(x => x).splice(depth)].join('/');
+
+router.get('/othello', async ctx => ctx.redirect(override(ctx.URL.pathname, 'games/reversi', 1)));
+router.get('/reversi', async ctx => ctx.redirect(override(ctx.URL.pathname, 'games')));
+
// Render base html for all requests
router.get('*', async ctx => {
const meta = await fetchMeta();