DEV Community

loading...
Cover image for How to redirect in SvelteKit endpoints

How to redirect in SvelteKit endpoints

Dana Woodman
Software hacker working in the industry since 2003. Currently loves: #Typescript and #Svelte. Founder of Chimera, the first makerspace in northern California (https://www.chimeraarts.org/).
・1 min read

Wanted to do redirects in your SvelteKit endpoints and tried to return { redirect: '/success' } just to find out it doesn't work?

Well, you're in luck because you can just use the standard Location header to do redirects:

export async function get() {

  // Do some magic here... ✨

  return {
    headers: { Location: '/success' },
    status: 302
  }
}
Enter fullscreen mode Exit fullscreen mode

Remember to make sure use the proper status code for your redirect.

Learn more about the Location header on MDN.

Whelp, that's it for today, hope this saved you some headaches!


Follow me on Dev.to, Twitter and Github for more web dev and startup related content

Discussion (5)

Collapse
spences10 profile image
Scott Spence • Edited

So I'm currently looking to move from my old blog, which has a filing structure like:

content/posts/2021/06/some-post-title/index.mdx
Enter fullscreen mode Exit fullscreen mode

In my blog currently that will be mydomain.com/2021/06/some-post-title

I'm looking to move to SvelteKit and use MDSveX and with Vite and the routing doesn't allow that (which I have found, and I've looked, like, a lot) so I'm looking to simplify the routes to something like:

src/routes/posts/some-post-title.svx
Enter fullscreen mode Exit fullscreen mode

How would I structure the redirects so that I'm not creating a path for each of the existing routes (130 odd)?

Do you have an example or some source code I could check out?

Thanks

Collapse
danawoodman profile image
Dana Woodman Author

You've added MDSvex with this adder? github.com/svelte-add/mdsvex

And you can't create a file like this src/routes/posts/2021/06/some-post-title/index.svx and then navigate to /posts/2021/06/some-post-title?

Collapse
delanyoyoko profile image
delanyo agbenyo

What about doing this for going back to a previous page (history.back()) when a button is clicked..

Collapse
alexbjorlig profile image
Alex Bjørlig

Is this caused by a bug in sveltekit or?
I mean, should i not work without the header?

Collapse
danawoodman profile image
Dana Woodman Author

What do you mean a bug? Redirect headers are standard HTTP, routes (e.g. Svelte route files) do this for you if you pass a redirect property in your load response