next.js에서 route가 변경되었을 경우 이전 route를 죽지 않게 하려면2023. 6. 25.
til이 딱히 til이 아닌 것 같고 github을 cms로 쓰는 것도 좀 번거로운 감이 있어서 걍 .mdx
파일을 작성하는 걸로 하고 route 이름도 notes
로 바꾸었는데, 바꾸고 보니 이전 링크를 preserve 해야 되겠다 싶어서 알아보았다. 브로큰 링크를 만들지 않아보겠다! 가 얼마 전에 목표가 되었기 때문에.
하려는 것
- (아마도 없을 것 같긴 하지만) 이전 링크를 어딘가 저장해 둔 누군가가 있을 수도 있다.
- 그 저장된 링크는
/til/:id
일 것 - 바뀐 링크는
/notes/:id
이지만, - 2.의 링크로도 액세스가 가능해야 함
그러니까 redirects
설정을 하면 되는 것인데,
next.config.js
아래와 같이 하면 된다.
/** @type {import('next').NextConfig} */
const nextConfig = {
// ...
async redirects() {
return [
// ...
{
source: "/til/:path*",
destination: "/notes/:path*",
permanent: false,
},
]
},
}
/** @type {import('next').NextConfig} */
const nextConfig = {
// ...
async redirects() {
return [
// ...
{
source: "/til/:path*",
destination: "/notes/:path*",
permanent: false,
},
]
},
}
대략 "/til/*"
하면 되지 않을까 했는데 역시 아니었고 "foo/:path*"
라구 해야 함. permanent: false
인 것에도 유의.