Перенаправление на язык в NextJS
Корень сайта / не попадает
в сегмент [lang]. Чтобы не
оставлять пользователя без языка,
можно перехватить такой запрос
в прокси-слое и вернуть ответ
с перенаправлением на /en.
В корне src лежит файл
proxy.js с экспортом функции
proxy. Внутри смотрим
pathname запроса: если путь
не начинается с /en и не
с /ru, собираем новый URL
и отдаем перенаправление. Давайте настроим
перенос с главной:
import { NextResponse } from 'next/server';
export function proxy(request) {
let { pathname } = request.nextUrl;
let hasLocale = pathname.startsWith('/en') || pathname.startsWith('/ru');
if (!hasLocale) {
return NextResponse.redirect(new URL('/en', request.url));
}
return NextResponse.next();
}
Добавьте прокси-слой, который
отправляет запросы без префикса
языка на /en.
Проверьте в браузере: открытие
/ должно привести на
английскую главную.