i have a app/middleware.ts but it didn’t trigger,
import { NextResponse, NextRequest } from 'next/server'
// This function can be marked `async` if using `await` inside
export function middleware(request: NextRequest) {
return NextResponse.redirect(new URL('/home', request.url))
}
export const config = {
matcher: '/about/:path*',
}
when i visit /about, it didn’t redirect to /home, do anyone know what is the problem? all the structure are shown on the pictures.
2
Answers
middleware.ts should located in the root of your project. not the app directory
For NextJs
14.x
themiddleware.js
ormiddleware.ts
file is used to define middleware that runs on the server before a request is fully processed.It allows you to alter the response based on the
incoming request
by performing actions like rewriting, redirecting, adjusting request or response headers, or even directly sending a response.To define middleware, use the
middleware.js
ormiddleware.ts
file located in theroot
of your project. Such as at the same level as theapp
orpages
directory, or inside thesrc
folder if applicable.Example of possible folder and file structures:
root
level:inside
src
folder: