diff --git a/app.js b/app.js
index a73439a839d5baf2f55680e3d6ba87f96a90d5f4..6d32b1f7b1cc427abac458f1a5d5dc4192264518 100644
--- a/app.js
+++ b/app.js
@@ -3,6 +3,7 @@ const config = require('./config')
 const cors = require("./src/cors");
 const scenelayers = require("./routes/scenelayers");
 const nodes = require("./routes/nodes");
+const nodepages = require("./routes/nodepages");
 const errorHandler = require("./src/errorHandler");
 const port = config.PORT || 9000;
 
@@ -16,6 +17,7 @@ app.get("/favicon.ico", function (req, res) {
 app.use(cors);
 app.use("/scenelayers", scenelayers);
 app.use("*nodes", nodes);
+app.use("*nodepages", nodepages);
 app.use(errorHandler);
 
 app.listen(port, err => {
diff --git a/config.js b/config.js
index d2a7fad042fa5e010b4f27d010145299fef77cfc..36c50017accff88f970dec181957db6804c43e0a 100644
--- a/config.js
+++ b/config.js
@@ -4,6 +4,7 @@ module.exports = {
   FOLDER_INDEX: {
     SCENELAYER: "3dSceneLayer.json.gz",
     NODE: "3dNodeIndexDocument.json.gz",
+    NODEPAGES: ".json.gz",
     SHARED: "sharedResource.json.gz",
     FEATURES: "0.json.gz",
     GEOMETRIES: "0.bin.gz",
diff --git a/routes/nodepages.js b/routes/nodepages.js
new file mode 100644
index 0000000000000000000000000000000000000000..96b7da06956b0088070c833798b6f51c568d9deb
--- /dev/null
+++ b/routes/nodepages.js
@@ -0,0 +1,21 @@
+const express = require("express");
+const getHandler = require('../src/handler');
+
+let router = express.Router();
+
+router.route("/:pagesid").get((req, res) => {
+
+  let param = req.params.nodeid;
+  let handler = getHandler("nodepages");
+  handler(req, res);
+
+});
+
+router.route("*").get((req, res) => {
+
+  res.sendStatus(404);
+  res.end();
+
+});
+
+module.exports = router;
\ No newline at end of file
diff --git a/src/default.js b/src/default.js
index b9a11002ebd8f876cd838c7d1194e1e60e8dc24d..5b52766bb20b5d84a398500788f2c20decc5cd8e 100644
--- a/src/default.js
+++ b/src/default.js
@@ -3,8 +3,8 @@ const fs = require('fs');
 
 const handle = (req, res) => {
 
-  let originalUrl = req.originalUrl.replace(/^\/?|\/?$/g, "");
-  let resourse = `${config.BASE_DIR}/${originalUrl}/${config.FOLDER_INDEX.NODE}`;
+  let baseUrl = req.baseUrl.replace(/^\/?|\/?$/g, "");
+  let resourse = `${config.BASE_DIR}/${baseUrl}/${req.params.nodeid}/${config.FOLDER_INDEX.NODE}`;
   if (!fs.existsSync(resourse)) throw new Error("not found");
 
   res.set({
diff --git a/src/handler.js b/src/handler.js
index 73554cd0daadd1f8ba1af7e00448a9158e194aec..d646efc414046e9fc02313d58d9dc0e5f8397059 100644
--- a/src/handler.js
+++ b/src/handler.js
@@ -1,4 +1,5 @@
 const _default_ = require('./default');
+const nodepages = require('./nodepages');
 const shared = require('./shared');
 const features = require('./features');
 const geometries = require('./geometries');
@@ -8,6 +9,7 @@ const layers = require('./layers');
 
 const handlers = {
   _default_: _default_,
+  nodepages: nodepages,
   shared: shared,
   features: features,
   geometries: geometries,
diff --git a/src/nodepages.js b/src/nodepages.js
new file mode 100644
index 0000000000000000000000000000000000000000..96aadfaa89a143a7f245650d18764d817ae3e19d
--- /dev/null
+++ b/src/nodepages.js
@@ -0,0 +1,18 @@
+const config = require('../config');
+const fs = require('fs');
+
+const handle = (req, res) => {
+
+  let baseUrl = req.baseUrl.replace(/^\/?|\/?$/g, "");
+  let resourse = `${config.BASE_DIR}/${baseUrl}/${req.params.pagesid}${config.FOLDER_INDEX.NODEPAGES}`;
+  if (!fs.existsSync(resourse)) throw new Error("not found");
+
+  res.set({
+    'Content-Type': 'application/json',
+    'Content-Encoding': 'gzip'
+  });
+  res.sendFile(resourse);
+
+};
+
+module.exports = handle;
\ No newline at end of file