Remove trailing slash on urls

This commit is contained in:
DrMint 2024-07-28 08:25:07 +02:00
parent 7dd91f5847
commit 90266abc91
3 changed files with 13 additions and 0 deletions

View File

@ -11,6 +11,7 @@ export default defineConfig({
srcDir: "./src",
publicDir: "./public",
outDir: "./dist",
trailingSlash: "never",
adapter: node({
mode: "standalone",
}),

View File

@ -7,11 +7,13 @@ import { actionsHandlingMiddleware } from "src/middleware/actionsHandling";
import { requestTrackingMiddleware } from "src/middleware/requestTracking";
import { pageCachingMiddleware } from "src/middleware/pageCaching";
import { setAstroLocalsMiddleware } from "src/middleware/setAstroLocals";
import { removeTrailingSlashMiddleware } from "src/middleware/removeTrailingSlash";
export const onRequest = sequence(
// Possible redirect
actionsHandlingMiddleware,
localeNegotiationMiddleware,
removeTrailingSlashMiddleware,
addCommonHeadersMiddleware,

View File

@ -0,0 +1,10 @@
import { defineMiddleware } from "astro:middleware";
import { redirect } from "src/middleware/utils";
export const removeTrailingSlashMiddleware = defineMiddleware(({ url }, next) => {
if (url.pathname.endsWith("/")) {
url.pathname = url.pathname.substring(0, url.pathname.length - 1);
return redirect(url.toString());
}
return next();
});