Przejdź do treści

Wzorzec · TypeScript

Stałe przekierowania w Next.js (config i middleware)

301/308 przy zmianie slugów i sklejaniu duplikatów; uważaj na pętle i canonical.

Poziom: średniSzacunek czasu: ~35 min

Stałe przekierowania przekazują „wagę” na docelowy URL; tymczasowe — na A/B i serwis bez przepisywania indeksu.

  • Jeden docelowy URL na semantykę
  • unikaj łańcuchów A→B→C
  • po migracji zaktualizuj sitemap i linki wewnętrzne

Przekierowania zamykają duplikaty (/page, /page/), przenoszą ruch po zmianie nazw sekcji i utrzymują sklejanie starych URL z reklam.

Kod

next.config.mjs (fragment):

/** @type {import('next').NextConfig} */
const nextConfig = {
  async redirects() {
    return [
      { source: '/old-path', destination: '/new-path/', permanent: true },
    ]
  },
}
export default nextConfig

Warunkowe przekierowanie w middleware (np. tylko nie-prod):

import { NextResponse } from 'next/server'
import type { NextRequest } from 'next/server'

export function middleware(request: NextRequest) {
  if (request.nextUrl.pathname === '/legacy') {
    return NextResponse.redirect(new URL('/current/', request.url), 308)
  }
  return NextResponse.next()
}

Weryfikacja

  • Status odpowiedzi 301 lub 308; w Location — kanoniczny URL.
  • Brak pętli; łańcuch przekierowań nie dłuższy niż 1–2 skoki dla kluczowych stron.

Źródła

Wdrożyć pod Twoją domenę i stack?

Krótki formularz: imię, telefon, strona. Po wysłaniu — odpowiedź z kolejnością prac i orientacją etapów; szczegóły doprecyzujemy na kontakcie.