我想将 nextjs 中间件匹配器中的用户从“admin”页面重定向到“login”页面,但是重定向不起作用,我尝试将网址与“/admin”匹配,例如“www.mydomain.com/” admin”并重定向到“www.mydomain.com/login”,但它不起作用:
export function middleware(request) {
// Middleware logic here
const url = request.nextUrl.clone();
// Example: Redirect if path is `/admin`
if (url === '/admin') {
return NextResponse.redirect(new URL('/login', request.url));
}
return NextResponse.next(); // Continue to the requested page
}
// Configure the matcher to only run middleware on specific paths
export const config = {
matcher: ['/admin', '/dashboard/:path*'], // Specify exact paths or patterns
};
我在网上查找了代码示例,询问了与我合作的一所大学,并尝试阅读有关 nextjs 的博客。
尝试根据 url 的路径名而不是整个 url 来匹配 url。
if (url.pathname === '/admin') {
return NextResponse.redirect(new URL('/login', request.url));
}
另外,我会向您推荐有关中间件观察程序的 nextjs 文档,以查找 nextjs 中间件观察程序的 github 代码示例。祝你好运