How to redirect www traffic to non-www in your Express app

Posted May 15th, 2021 • 1 min read

It's good practice to force either www or non-www for your website. But how do you redirect your traffic properly using Express?

Middleware

The easiest way to do anything in Express is by using middleware. This way you can process every request and take action if you need to.

function redirectWwwTraffic(req, res, next) {
  if (req.headers.host.slice(0, 4) === "www.") {
    var newHost = req.headers.host.slice(4);
    return res.redirect(301, req.protocol + "://" + newHost + req.originalUrl);
  }
  next();
}

app.set("trust proxy", true);
app.use(redirectWwwTraffic);

If you place this before starting your express app it will do the following:

For every request it checks if the host starts with www. If it does, it takes the original URL and redirects it to the non-www version with a 301 redirect.

Simple and easy! 👌

More posts

May 15th, 2021 • 2 min read
In this post I will show you how to add GZip to your PHP application
May 15th, 2021 • 2 min read
My experiences while converting this blog to an Octopress one
May 15th, 2021 • 2 min read
Loading external assets with curl is not only easy, it's also a lot faster than file_get_contents