No more cumbersome redirects!
Clone or download
Latest commit fd8cd22 Nov 25, 2018

README.md

Redirect Module 🔀 No more cumbersome redirects!

npm (scoped with tag) npm CircleCI Codecov Dependencies js-standard-style

📖 Release Notes

Features

Redirecting URLs is an often discussed topic, especially when it comes to SEO. Previously it was hard to create a "real" redirect without performance loss or incorrect handling. But this time is over!

With the Redirect Module setting up redirects will become easier than ever before!

Setup

  • Add @nuxtjs/redirect-module dependency using yarn or npm to your project
  • Add @nuxtjs/redirect-module to modules section of nuxt.config.js
  • Configure it:

Inline options

{
  modules: [
    ['@nuxtjs/redirect-module', [ /* Redirect option here */]],
 ]
}

Dedicated option array

{
  modules: [
    '@nuxtjs/redirect-module'
 ],
 redirect: [
  // Redirect options here
 ]
}

Usage

Simply add the links you want to redirect as objects to the module option array:

redirect: [
  { from: '^/myoldurl', to: '/mynewurl' }
 ]

You can set up a custom status code as well. By default, it's 302!

redirect: [
  { from: '^/myoldurl', to: '/mynewurl', statusCode: 301 }
 ]

As you may have already noticed, we are leveraging the benefits of Regular Expressions. Hence, you can fully customize your redirects.

redirect: [
  { from: '^/myoldurl/(.*)$', to: '/comeallhere', } // Many urls to one
  { from: '^/anotherold/(.*)$', to: '/new/$1', } // One to one mapping
 ]

Furthermoer you can use a function to create your to url as well 👍 The from rule and the req of the middleware will be provided as arguments. The function can also be async!

redirect: [
  {
    from: '^/someUrlHere/(.*)$',
    to: (from, req) => {
      const param = req.url.match(/functionAsync\/(.*)$/)[1]
      return `/posts/${param}`
    }
  }
]

And if you really need more power... okay! You can also use a factory function to generate your redirects:

redirect: async () => {
  const someThings = await axios.get("/myApi") // It'll wait!
  return someThings.map(coolTransformFunction)
}

ATTENTION: The factory function must return an array with redirect objects (as seen above).

Development

  • Clone this repository
  • Install dependencies using yarn install or npm install
  • Start development server using npm run dev

License

MIT License

Copyright (c) Alexander Lichter npm@lichter.io