diff --git a/routes/v1.js b/routes/v1.js
index 499508816a7c1595e975e23e9508d9129b458925..2b8a79101977d2443e91a56513dcf9c93d274d48 100644
--- a/routes/v1.js
+++ b/routes/v1.js
@@ -4,12 +4,54 @@ const { toLower } = require("../src/customSanitizers");
 const { errorHandler } = require("../src/errorHandler");
 const checkFactory = require("../src/validationCheckFactory");
 const { getSceneHandler } = require("../src/getSceneHandler");
+const { getCapabilitiesHandler } = require("../src/getCapabilitiesHandler");
 const bb = require("../src/boundingbox");
+const redirectTo = require("../src/redirectTo");
 
 let router = express.Router();
 
 const checks = [
   ...checkFactory.commonChecks(),
+  check("request")
+    .exists().withMessage("MissingParameterValue")
+    .customSanitizer(toLower)
+    .isIn(["getscene", "getcapabilities"]).withMessage("InvalidParameterValue")
+];
+
+router.route("/").get(checks, (req, res) => {
+
+  const errors = validationResult(req);
+  if (!errors.isEmpty()) {
+    let exception = errorHandler(errors);
+    res.set("Content-Type", "application/xml");
+    return res.status(400).send(exception);
+  }
+
+  redirectTo(req.query.request, req, res);
+
+});
+
+const capabilitiesChecks = [
+  check("request")
+    .exists().withMessage("MissingParameterValue")
+    .customSanitizer(toLower)
+    .equals("getcapabilities").withMessage("InvalidParameterValue")
+];
+
+router.route("/capabilities").get(capabilitiesChecks, (req, res) => {
+
+  const errors = validationResult(req);
+  if (!errors.isEmpty()) {
+    let exception = errorHandler(errors);
+    res.set("Content-Type", "application/xml");
+    return res.status(400).send(exception);
+  }
+
+  getCapabilitiesHandler(req, res);
+
+});
+
+const sceneChecks = [
   check("request")
     .exists().withMessage("MissingParameterValue")
     .customSanitizer(toLower)
@@ -39,18 +81,17 @@ const checks = [
     .isIn(["true", "false"]).withMessage("InvalidParameterValue")
 ];
 
-router.route("/")
-  .get(checks, (req, res) => {
+router.route("/scene").get(sceneChecks, (req, res) => {
 
-    const errors = validationResult(req)
-    if (!errors.isEmpty()) {
-      let exception = errorHandler(errors);
-      res.set("Content-Type", "application/xml");
-      return res.status(400).send(exception);
-    }
+  const errors = validationResult(req);
+  if (!errors.isEmpty()) {
+    let exception = errorHandler(errors);
+    res.set("Content-Type", "application/xml");
+    return res.status(400).send(exception);
+  }
 
-    getSceneHandler(req, res);
+  getSceneHandler(req, res);
 
-  });
+});
 
 module.exports = router;
\ No newline at end of file
diff --git a/src/customSanitizers.js b/src/customSanitizers.js
index 4d5a2f0feff94c3d614777b7184e03be65a5fea7..42ccd803e04d167419f825048a74d63e862364cb 100644
--- a/src/customSanitizers.js
+++ b/src/customSanitizers.js
@@ -1,4 +1,5 @@
 const toLower = (value) => {
+  if(!value) return;
   return value.toLowerCase();
 }
 
diff --git a/src/getCapabilitiesHandler.js b/src/getCapabilitiesHandler.js
index 9ad510a838e5490cc87f57625d5d66546c64b595..1fcf62a72268e908f9a3c9f668229a9a422c8a0f 100644
--- a/src/getCapabilitiesHandler.js
+++ b/src/getCapabilitiesHandler.js
@@ -9,7 +9,7 @@ const getCapabilitiesHandler = (req, res) => {
     let capabilities = compiledFunction({ layers: layers });
     res.set("Content-Type", "application/xml");
     res.status(200).send(capabilities);
-
+    
   });
 
 }
diff --git a/src/redirectTo.js b/src/redirectTo.js
new file mode 100644
index 0000000000000000000000000000000000000000..accf652a05f57e04df033879a8c6d3c62478d7b9
--- /dev/null
+++ b/src/redirectTo.js
@@ -0,0 +1,28 @@
+const url = require('url');
+
+const redirectTo = (request, req, res) => {
+
+  switch (request.toLowerCase()) {
+    case "getscene": {
+      res.redirect(
+        url.format({
+          pathname: `${req.baseUrl}/scene`,
+          query: req.query,
+        })
+      );
+      break;
+    }
+    case "getcapabilities": {
+      res.redirect(
+        url.format({
+          pathname: `${req.baseUrl}/capabilities`,
+          query: req.query,
+        })
+      );
+      break;
+    }
+  }
+
+}
+
+module.exports = redirectTo;
\ No newline at end of file