Front-end/Nextjs (12버전)

Nextjs Redirects 관련 팁

biglol 2022. 11. 27. 16:34

특정 url을 입력했을 때 다른 곳으로 Redirect (Nextjs 12버전)


Nextjs에서 어떤 특정 url을 입력했을 때 다른 페이지로 redirect하고 싶은 경우가 있습니다.

예를 들어 http://localhost:3000 로 접속 시 http://localhost:3000/dev 로 redirect하고자 하는 경우 특정 설정들을 건드려야 합니다.

이때 어떻게 하면 되는지 살펴보겠습니다.

 

깃헙 링크: https://github.com/biglol10/tistory_source/tree/main/basepath_redirects

 

우선 nextjs 프로젝트 폴더에서 next.config.js가 생성되어 있어야 합니다.

 

  • next.config.js 파일소스
const prodEnv = process.env.NODE_ENV === "production";

module.exports = {
  ...nextConfig,
  basePath: prodEnv ? "/production" : "/dev",
  async redirects() {
    return [
      {
        source: "/",
        destination: `/${prodEnv ? "production" : "dev"}`,
        basePath: false,
        permanent: false,
      },
    ];
  },
};

이렇게 해주면 http://localhost:3000 로 접속 시 http://localhost:3000/dev 또는 production 으로 redirect 됩니다.

 

만약에 http://localhost:3000/dev/ 에서 숫자나 영문자 3개를 입력했을 때 다른 페이지로 이동하고 싶을 경우

{
	source: `/${prodEnv ? "production" : "dev"}/:a([A-Za-z1-9]{3})`,
	destination: `/${prodEnv ? "production" : "dev"}/redirect`,
	basePath: false,
	permanent: false,
},

를 next.config.js 추가해주시면 됩니다

 

예시: 

로 입력 후 엔터를 치면

로 이동되는 것을 확인할 수 있습니다.