Условие по пути в NextJS
Без дополнительных настроек функция прокси
вызывается для каждого запроса к приложению.
Если правило нужно только на части адресов,
рядом с функцией экспортируют объект
config с полем matcher -
списком путей или шаблонов, для которых
файл proxy.js вообще запускается.
Внутри функции логика может оставаться
простой: пропуск дальше или одно
перенаправление. Важно, что тяжелая работа
не выполняется там, где matcher не совпал.
Давайте включим прокси только для раздела
/dashboard и его вложенных страниц,
а на этом пути отправим пользователя
на /login:
import { NextResponse } from 'next/server';
export function proxy(request) {
return NextResponse.redirect(new URL('/login', request.url));
}
export const config = {
matcher: '/dashboard/:path*',
};
Ограничьте запуск прокси маршрутом
/api/private/:path* и настройте
для него перенос на /403.