Skip to content
Discussion options

You must be logged in to vote

Credit to @pecoram and @dgoerdes, we now have a solution for this in Next.js 12 with Middleware!

// middleware.ts
import { NextRequest, NextResponse } from 'next/server';

const PUBLIC_FILE = /\.(.*)$/;

export async function middleware(req: NextRequest) {
  if (
    req.nextUrl.pathname.startsWith('/_next') ||
    req.nextUrl.pathname.includes('/api/') ||
    PUBLIC_FILE.test(req.nextUrl.pathname)
  ) {
    return;
  }

  if (req.nextUrl.locale === 'default') {
    return NextResponse.redirect(
      new URL(`/en${req.nextUrl.pathname}`, req.url)
    );
  }
}
// next.config.js

module.exports = {
    i18n: {
        locales: ['default', 'en', 'de', 'fr'],
        defaultLocale: 'default',

Replies: 51 comments 134 replies

Comment options

You must be logged in to vote
0 replies
Comment options

You must be logged in to vote
0 replies
Comment options

You must be logged in to vote
0 replies
Comment options

You must be logged in to vote
1 reply
@CaptainN
Comment options

Comment options

You must be logged in to vote
0 replies
Comment options

You must be logged in to vote
0 replies
Comment options

You must be logged in to vote
0 replies
Comment options

You must be logged in to vote
0 replies
Comment options

You must be logged in to vote
0 replies
Comment options

You must be logged in to vote
1 reply
@omgMath
Comment options

Comment options

You must be logged in to vote
0 replies
Comment options

You must be logged in to vote
0 replies
Comment options

You must be logged in to vote
0 replies
Comment options

You must be logged in to vote
0 replies
Comment options

You must be logged in to vote
26 replies
@vforvalerio87
Comment options

@rlenoir-codepoint
Comment options

@martinratinaud
Comment options

@svassaux
Comment options

@dnbastos
Comment options

Comment options

You must be logged in to vote
1 reply
@elias-thok
Comment options

Comment options

You must be logged in to vote
0 replies
Comment options

You must be logged in to vote
1 reply
@igorzinar
Comment options

Comment options

You must be logged in to vote
0 replies
Comment options

You must be logged in to vote
4 replies
@magsout
Comment options

@leerob
Comment options

@leerob
Comment options

@magsout
Comment options

Comment options

You must be logged in to vote
0 replies
Comment options

You must be logged in to vote
4 replies
@rebzden-baracoda
Comment options

@mderrick
Comment options

@gregghawes
Comment options

@mderrick
Comment options

Comment options

You must be logged in to vote
5 replies
@anders-photowall
Comment options

@anders-photowall
Comment options

@actraiser
Comment options

@dennisdittrich
Comment options

@anders-photowall
Comment options

Comment options

You must be logged in to vote
4 replies
@joggienl
Comment options

@MartinDavi
Comment options

@leerob
Comment options

@belafonte
Comment options

Comment options

You must be logged in to vote
0 replies
Comment options

You must be logged in to vote
2 replies
@vinnycodes
Comment options

@gadicc
Comment options

Comment options

You must be logged in to vote
4 replies
@StynV
Comment options

@loganBaek
Comment options

@loganBaek
Comment options

@danangtomo
Comment options

Comment options

You must be logged in to vote
0 replies
Comment options

You must be logged in to vote
0 replies
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Help
Labels
None yet