diff --git a/src/controllers/categories.js b/src/controllers/categories.js index 25e384c0ed..350fdd245f 100644 --- a/src/controllers/categories.js +++ b/src/controllers/categories.js @@ -40,7 +40,7 @@ categoriesController.list = function (req, res, next) { categories: categoryData, }; - if (req.path.startsWith('/api/categories') || req.path.startsWith('/categories')) { + if (req.originalUrl.startsWith(nconf.get('relative_path') + '/api/categories') || req.originalUrl.startsWith(nconf.get('relative_path') + '/categories')) { data.breadcrumbs = helpers.buildBreadcrumbs([{ text: data.title }]); } diff --git a/src/controllers/category.js b/src/controllers/category.js index c7414fc096..f231349a49 100644 --- a/src/controllers/category.js +++ b/src/controllers/category.js @@ -109,7 +109,7 @@ categoryController.get = function (req, res, callback) { return helpers.redirect(res, categoryData.link); } - buildBreadcrumbs(categoryData, next); + buildBreadcrumbs(req, categoryData, next); }, function (categoryData, next) { if (!categoryData.children.length) { @@ -148,7 +148,7 @@ categoryController.get = function (req, res, callback) { ], callback); }; -function buildBreadcrumbs(categoryData, callback) { +function buildBreadcrumbs(req, categoryData, callback) { var breadcrumbs = [ { text: categoryData.name, @@ -160,7 +160,9 @@ function buildBreadcrumbs(categoryData, callback) { helpers.buildCategoryBreadcrumbs(categoryData.parentCid, next); }, function (crumbs, next) { - categoryData.breadcrumbs = crumbs.concat(breadcrumbs); + if (req.originalUrl.startsWith(nconf.get('relative_path') + '/api/category') || req.originalUrl.startsWith(nconf.get('relative_path') + '/category')) { + categoryData.breadcrumbs = crumbs.concat(breadcrumbs); + } next(null, categoryData); }, ], callback); diff --git a/src/controllers/home.js b/src/controllers/home.js index d5a8c30050..c044f889c5 100644 --- a/src/controllers/home.js +++ b/src/controllers/home.js @@ -37,7 +37,7 @@ pubsub.on('config:update', configUpdated); configUpdated(); module.exports = function (req, res, next) { - if (req.path !== '/' && req.path !== '/api/') { + if (req.path !== '/' && req.path !== '/api/' && req.path !== '/api') { return next(); } @@ -56,7 +56,7 @@ module.exports = function (req, res, next) { }); } - req.url = req.path + route; + req.url = req.path + (!req.path.endsWith('/') ? '/' : '') + route; next(); }); }; diff --git a/src/controllers/popular.js b/src/controllers/popular.js index 99af5baf19..8b0ee26899 100644 --- a/src/controllers/popular.js +++ b/src/controllers/popular.js @@ -52,7 +52,7 @@ popularController.get = function (req, res, next) { term: term, }; - if (req.path.startsWith('/api/popular') || req.path.startsWith('/popular')) { + if (req.originalUrl.startsWith(nconf.get('relative_path') + '/api/popular') || req.originalUrl.startsWith(nconf.get('relative_path') + '/popular')) { var breadcrumbs = [{ text: termToBreadcrumb[term] }]; if (req.params.term) { diff --git a/src/controllers/recent.js b/src/controllers/recent.js index d6947d53a7..1477cf01f9 100644 --- a/src/controllers/recent.js +++ b/src/controllers/recent.js @@ -71,7 +71,7 @@ recentController.get = function (req, res, next) { var pageCount = Math.max(1, Math.ceil(data.topicCount / settings.topicsPerPage)); data.pagination = pagination.create(page, pageCount, req.query); - if (req.path.startsWith('/api/recent') || req.path.startsWith('/recent')) { + if (req.originalUrl.startsWith(nconf.get('relative_path') + '/api/recent') || req.originalUrl.startsWith(nconf.get('relative_path') + '/recent')) { data.breadcrumbs = helpers.buildBreadcrumbs([{ text: '[[recent:title]]' }]); } diff --git a/src/controllers/unread.js b/src/controllers/unread.js index 7891012e19..d8a77345c5 100644 --- a/src/controllers/unread.js +++ b/src/controllers/unread.js @@ -64,8 +64,7 @@ unreadController.get = function (req, res, next) { data.categories = results.watchedCategories.categories; data.selectedCategory = results.watchedCategories.selectedCategory; data.selectedCids = results.watchedCategories.selectedCids; - - if (req.path.startsWith('/api/unread') || req.path.startsWith('/unread')) { + if (req.originalUrl.startsWith(nconf.get('relative_path') + '/api/unread') || req.originalUrl.startsWith(nconf.get('relative_path') + '/unread')) { data.breadcrumbs = helpers.buildBreadcrumbs([{ text: '[[unread:title]]' }]); }