Skip to content

Commit b633c9b

Browse files
committed
Add middleware to redirect old %20 URLs to dashed versions
1 parent 13af2cd commit b633c9b

1 file changed

Lines changed: 31 additions & 0 deletions

File tree

apps/web/middleware.ts

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import { NextResponse } from 'next/server';
2+
import type { NextRequest } from 'next/server';
3+
4+
export function middleware(request: NextRequest) {
5+
const pathname = request.nextUrl.pathname;
6+
7+
// Redirect tracks URLs with spaces (decoded from %20) to dashed versions
8+
if (pathname.startsWith('/tracks/')) {
9+
const segments = pathname.split('/');
10+
let hasSpace = false;
11+
const fixedSegments = segments.map((seg) => {
12+
if (seg.includes(' ')) {
13+
hasSpace = true;
14+
return seg.replace(/ /g, '-');
15+
}
16+
return seg;
17+
});
18+
19+
if (hasSpace) {
20+
const url = request.nextUrl.clone();
21+
url.pathname = fixedSegments.join('/');
22+
return NextResponse.redirect(url, 301);
23+
}
24+
}
25+
26+
return NextResponse.next();
27+
}
28+
29+
export const config = {
30+
matcher: '/tracks/:path*',
31+
};

0 commit comments

Comments
 (0)