diff --git a/packages/backend/package.json b/packages/backend/package.json index 157f216b21..7b92b8311c 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -79,6 +79,7 @@ "koa-json-body": "5.3.0", "koa-logger": "3.2.1", "koa-mount": "4.0.0", + "koa-remove-trailing-slashes": "2.0.3", "koa-send": "5.0.1", "koa-slow": "2.1.0", "koa-views": "7.0.2", diff --git a/packages/backend/src/server/index.ts b/packages/backend/src/server/index.ts index cd1425d6a2..8035dcdd7a 100644 --- a/packages/backend/src/server/index.ts +++ b/packages/backend/src/server/index.ts @@ -10,6 +10,7 @@ import Router from "@koa/router"; import mount from "koa-mount"; import koaLogger from "koa-logger"; import * as slow from "koa-slow"; + import { IsNull } from "typeorm"; import config from "@/config/index.js"; import Logger from "@/services/logger.js"; @@ -29,6 +30,7 @@ import proxyServer from "./proxy/index.js"; import webServer from "./web/index.js"; import { initializeStreamingServer } from "./api/streaming.js"; import { koaBody } from "koa-body"; +import removeTrailingSlash from "koa-remove-trailing-slashes"; import { v4 as uuid } from "uuid"; export const serverLogger = new Logger("server", "gray", false); @@ -37,12 +39,7 @@ export const serverLogger = new Logger("server", "gray", false); const app = new Koa(); app.proxy = true; -// Replace trailing slashes -app.use(async (ctx, next) => { - if (ctx.request.path !== "/" && ctx.request.path.endsWith("/")) - return ctx.redirect(ctx.request.path.replace(/\/$/, "")); - else await next(); -}); +app.use(removeTrailingSlash()); if (!["production", "test"].includes(process.env.NODE_ENV || "")) { // Logger