diff --git a/src/inc/routes/admin.mjs b/src/inc/routes/admin.mjs index 485df50..cf78a8b 100644 --- a/src/inc/routes/admin.mjs +++ b/src/inc/routes/admin.mjs @@ -319,7 +319,7 @@ export default (router, tpl) => { }); }); - router.get(/\/admin\/user\/(?\d+)\/ips(\/)?$/, lib.auth, async (req, res) => { + router.get(/^\/admin\/user\/(?\d+)\/ips(\/)?$/, lib.auth, async (req, res) => { const userId = +req.params.userId; const user = await db`select "user", login from "user" where id = ${userId} limit 1`; if (user.length === 0) return res.reply({ code: 404, body: 'User not found' }); diff --git a/src/inc/routes/ajax.mjs b/src/inc/routes/ajax.mjs index 37e9937..23873e7 100644 --- a/src/inc/routes/ajax.mjs +++ b/src/inc/routes/ajax.mjs @@ -4,7 +4,7 @@ import cfg from "../config.mjs"; import { createI18n } from "../i18n.mjs"; export default (router, tpl) => { - router.get(/\/ajax\/item\/(?[a-zA-Z0-9_-]{11}|\d+)/, async (req, res) => { + router.get(/^\/ajax\/item\/(?[a-zA-Z0-9_-]{11}|\d+)/, async (req, res) => { const tAjaxStart = Date.now(); let query = {}; if (typeof req.url === 'string') { @@ -195,7 +195,7 @@ export default (router, tpl) => { // Infinite scroll endpoint for index thumbnails - router.get(/\/ajax\/items/, async (req, res) => { + router.get(/^\/ajax\/items/, async (req, res) => { let query = {}; if (typeof req.url === 'string') { const parsedUrl = url.parse(req.url, true); diff --git a/src/inc/routes/chat.mjs b/src/inc/routes/chat.mjs index 47bac63..223c17c 100644 --- a/src/inc/routes/chat.mjs +++ b/src/inc/routes/chat.mjs @@ -208,7 +208,7 @@ export default (router, tpl) => { }); // DELETE /api/chat/:id — admin: delete a single message - router.delete(/\/api\/chat\/(?\d+)/, async (req, res) => { + router.delete(/^\/api\/chat\/(?\d+)/, async (req, res) => { if (!cfg.websrv.enable_global_chat) { return res.reply({ code: 404, body: JSON.stringify({ success: false }) }); } diff --git a/src/inc/routes/index.mjs b/src/inc/routes/index.mjs index efbaca9..1253aa7 100644 --- a/src/inc/routes/index.mjs +++ b/src/inc/routes/index.mjs @@ -416,7 +416,7 @@ export default (router, tpl) => { // Specific route for direct item links: /user/:user/:itemid // This avoids ambiguity with the profile route - router.get(/\/user\/(?[^/]+)\/(?[a-zA-Z0-9_-]+)$/, handleGenericRoute); + router.get(/^\/user\/(?[^/]+)\/(?[a-zA-Z0-9_-]+)$/, handleGenericRoute); // Generic router for everything else (Index, Tags, standard User Grids) // We exclude static paths (/s/, /b/, /t/, /ca/, /a/, system routes) to prevent the greedy regex from intercepting them.