diff --git a/tradein-mvp/frontend/next.config.ts b/tradein-mvp/frontend/next.config.ts index 37a1f18c..3e15e672 100644 --- a/tradein-mvp/frontend/next.config.ts +++ b/tradein-mvp/frontend/next.config.ts @@ -16,6 +16,18 @@ const nextConfig: NextConfig = { // trailingSlash — false (default), важно чтобы Caddy /trade-in без слэша // редиректил на /trade-in/. + // Каноничная витрина = /v2. Легаси-корень (app/page.tsx, HeroSummary) + // остаётся в репо, но корень редиректит на /v2, чтобы оценщики попадали + // сразу на новую версию. permanent:false → 307 (обратимо, не кэшируется + // навсегда). basePath авто-префиксит source/destination → редирект живёт + // на /trade-in → /trade-in/v2. Query-string Next пробрасывает автоматически + // (destination без своего query), поэтому /trade-in/?id= → + // /trade-in/v2?id= — ссылки на конкретную оценку (restore по ?id=) + // не ломаются. + async redirects() { + return [{ source: "/", destination: "/v2", permanent: false }]; + }, + // В dev (без Caddy) Next.js сам проксирует /api/* и /health на backend // так что браузер использует относительные same-origin URLs. async rewrites() {