오늘은 Next.js의 여러가지 기능들 중 하나인 redirect와 rewrite에 대해 알아보자!
const nextConfig = {
reactStrictMode: true,
swcMinify: true,
redirects() {
return [
{
source: "/contact",
destination: "/form",
permanent: false,
},
];
}
};
module.exports = nextConfig;
💡 next.config.js 파일을 수정한 뒤에는 서버를 재시작해야 변경된 내용이 반영되니 반드시 재시작한 뒤에 확인하자!
redirects() {
return [
{
source: "/contact",
destination: "https://velog.io",
permanent: false,
},
];
}
redirects() {
return [
{
source: "/contact/:path",
destination: "/form/:path",
permanent: false,
},
];
}
redirects() {
return [
{
source: "/contact/:path*",
destination: "/form/:path*",
permanent: false,
},
];
}
redirect와 rewrite의 큰 차이점은 경로의 이동이 사용자의 눈에 보이느냐 안보이느냐 이다. redirect는 url이 바뀌는 모습을 사용자가 눈으로 직접 볼 수가 있다. 확인이 가능하다. 반면에 rewrite는 url이 바뀌는 모습을 사용자가 눈으로 볼 수가 없다!
rewrite는 사용자를 redirect 시키기는 하지만 url 자체는 변하지 않는다. 이런 경우는 API KEY를 숨기고 싶을 때 이 방법을 이용하면 효과를 볼 수 있을 것이다!
rewrites() {
return [
{
source: "/api/snacks",
destination: `https://불러올api주소?api_key=${API_KEY}`,
}
];
}
export async function getServerSideProps() {
const { results } = await (
await fetch("http://localhost:3000/api/snacks")
).json();
return {
props: {
results,
},
};
}
💡 redirect 와 rewrite 모두 애플리케이션에서 필요한 경우에 잘 활용하면 정말 좋은 기능이 될 것 같다!_!