'Redirect page to url Next.JS
I have a simple web page running next.js, the page just returns the "Hello World" element and I would like it to redirect me to another URL (youtube) instead.
It is basically a redirect page when loading.
My simple page:
function Home() {
return <div>Hello World</div>
}
export default Home
I even tried the js window.location function, but to no avail
Solution 1:[1]
In next.js you can redirect after the page is loaded using Router ex :
import Router from 'next/router'
componentDidMount(){
const {pathname} = Router
if(pathname == '/' ){
Router.push('/hello-nextjs')
}
}
Or with Hooks :
import React, { useEffect } from "react";
...
useEffect(() => {
const {pathname} = Router
if(pathname == '/' ){
Router.push('/hello-nextjs')
}
});
Solution 2:[2]
In order for the page to redirect while server-side rendering, you can put this at the bottom of your export function in your /pages/file and set an if conditional.
So for example, if that page doesn't exist, it will redirect to something else.
This way you don't have to play around with route.push.
if (!pageData) {
res.statusCode = 301;
res.setHeader("location", "/page-you-want-to-redirect-to");
res.end();
return {props: {notFound: true}};
}
export default Page
Thanks
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Packa |
| Solution 2 | swk23C8 |
