From 22ab7515fbe20499da24c01b0248ea9ae6c34a9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABl=20M=C3=A9tais?= Date: Mon, 25 May 2015 15:01:21 +0200 Subject: [PATCH] Redirect www. to non-www (for SEO) --- bin/server.js | 2 ++ lib/server/middlewares/wwwRedirectMiddleware.js | 12 ++++++++++++ 2 files changed, 14 insertions(+) create mode 100644 lib/server/middlewares/wwwRedirectMiddleware.js diff --git a/bin/server.js b/bin/server.js index a345910..9ad04a8 100644 --- a/bin/server.js +++ b/bin/server.js @@ -7,12 +7,14 @@ var cors = require('cors'); var authMiddleware = require('../lib/server/middlewares/authMiddleware'); var apiLimitsMiddleware = require('../lib/server/middlewares/apiLimitsMiddleware'); +var wwwRedirectMiddleware = require('../lib/server/middlewares/wwwRedirectMiddleware'); // Middlewares app.use(compress()); app.use(bodyParser.json()); app.use(cors()); +app.use(wwwRedirectMiddleware); app.use(authMiddleware); app.use(apiLimitsMiddleware); diff --git a/lib/server/middlewares/wwwRedirectMiddleware.js b/lib/server/middlewares/wwwRedirectMiddleware.js new file mode 100644 index 0000000..4560222 --- /dev/null +++ b/lib/server/middlewares/wwwRedirectMiddleware.js @@ -0,0 +1,12 @@ +var wwwRedirectMiddleware = function(req, res, next) { + 'use strict'; + + // Redirect www.yellowlab.tools to yellowlab.tools without "www" (for SEO purpose) + if(/^www\.yellowlab\.tools/.test(req.headers.host)) { + res.redirect(301, req.protocol + '://' + req.headers.host.replace(/^www\./, '') + req.url); + } else { + next(); + } +}; + +module.exports = wwwRedirectMiddleware; \ No newline at end of file