From 3143561d278756199ffe4c6f778aa181aea66076 Mon Sep 17 00:00:00 2001 From: Timo Knuth Date: Sat, 4 Apr 2026 20:17:26 +0200 Subject: [PATCH] feat: add permanent redirects for legacy QR code landing page slugs --- next.config.mjs | 94 +++++++++++++++++++++++++++++++++++-------------- 1 file changed, 67 insertions(+), 27 deletions(-) diff --git a/next.config.mjs b/next.config.mjs index 0fbbf8b..fc19c21 100644 --- a/next.config.mjs +++ b/next.config.mjs @@ -20,33 +20,33 @@ const nextConfig = { pagesBufferLength: 2, }, poweredByHeader: false, - async redirects() { - return [ - { - source: '/create-qr', - destination: '/dynamic-qr-code-generator', - permanent: true, - }, - { - source: '/guide/tracking-analytics', - destination: '/learn/tracking', - permanent: true, - }, - { - source: '/guide/bulk-qr-code-generation', - destination: '/learn/developer', - permanent: true, - }, - { - source: '/guide/qr-code-best-practices', - destination: '/learn/basics', - permanent: true, - }, - { - source: '/tools/phone-qr-code', - destination: '/tools/call-qr-code-generator', - permanent: true, - }, + async redirects() { + return [ + { + source: '/create-qr', + destination: '/dynamic-qr-code-generator', + permanent: true, + }, + { + source: '/guide/tracking-analytics', + destination: '/learn/tracking', + permanent: true, + }, + { + source: '/guide/bulk-qr-code-generation', + destination: '/learn/developer', + permanent: true, + }, + { + source: '/guide/qr-code-best-practices', + destination: '/learn/basics', + permanent: true, + }, + { + source: '/tools/phone-qr-code', + destination: '/tools/call-qr-code-generator', + permanent: true, + }, { source: '/barcode-generator', destination: '/tools/barcode-generator', @@ -57,6 +57,46 @@ const nextConfig = { destination: '/tools/barcode-generator', permanent: true, }, + { + source: '/qr-code-for/breweries-tap-rooms', + destination: '/qr-code-for/breweries', + permanent: true, + }, + { + source: '/qr-code-for/wineries-vineyards', + destination: '/qr-code-for/wineries', + permanent: true, + }, + { + source: '/qr-code-for/catering-businesses', + destination: '/qr-code-for/catering', + permanent: true, + }, + { + source: '/qr-code-for/spas-wellness-centers', + destination: '/qr-code-for/spas', + permanent: true, + }, + // Additional likely old slugs from previous site version + { source: '/qr-code-for/bars-pubs', destination: '/qr-code-for/bars', permanent: true }, + { source: '/qr-code-for/nightclubs-venues', destination: '/qr-code-for/nightclubs', permanent: true }, + { source: '/qr-code-for/dental-practices', destination: '/qr-code-for/dentists', permanent: true }, + { source: '/qr-code-for/pet-groomers', destination: '/qr-code-for/pet-grooming', permanent: true }, + { source: '/qr-code-for/clothing-apparel-stores', destination: '/qr-code-for/clothing-stores', permanent: true }, + { source: '/qr-code-for/florists-flower-shops', destination: '/qr-code-for/florists', permanent: true }, + { source: '/qr-code-for/pet-stores-groomers', destination: '/qr-code-for/pet-stores', permanent: true }, + { source: '/qr-code-for/hardware-diy-stores', destination: '/qr-code-for/hardware-stores', permanent: true }, + { source: '/qr-code-for/universities-colleges', destination: '/qr-code-for/universities', permanent: true }, + { source: '/qr-code-for/museums-exhibitions', destination: '/qr-code-for/museums', permanent: true }, + { source: '/qr-code-for/public-libraries', destination: '/qr-code-for/libraries', permanent: true }, + { source: '/qr-code-for/theaters-performing-arts', destination: '/qr-code-for/theaters', permanent: true }, + { source: '/qr-code-for/cinemas-movie-theaters', destination: '/qr-code-for/cinemas', permanent: true }, + { source: '/qr-code-for/churches-places-of-worship', destination: '/qr-code-for/churches', permanent: true }, + { source: '/qr-code-for/stadiums-sports-venues', destination: '/qr-code-for/stadiums', permanent: true }, + { source: '/qr-code-for/airports-travel-hubs', destination: '/qr-code-for/airports', permanent: true }, + { source: '/qr-code-for/photography-studios', destination: '/qr-code-for/photographers', permanent: true }, + { source: '/qr-code-for/trade-shows-exhibitions', destination: '/qr-code-for/trade-shows', permanent: true }, + { source: '/qr-code-for/accounting-firms', destination: '/qr-code-for/accountants', permanent: true }, ]; }, };