From c0391640079add11633a5b48a2149461efd1df6d Mon Sep 17 00:00:00 2001 From: Yufan You Date: Tue, 5 Mar 2024 21:02:41 +0800 Subject: [PATCH] fix: route syntax for hono (#14638) * fix: use :param{.+} instead of :param+ for hono * fix: use two separate routes to simulate :param* in hono It seems that hono does not support this route syntax. We can simulate it via two separate routes. See https://github.com/orgs/honojs/discussions/1536 * fix: use {} instead of () for regex in hono * fix: revert changes to lib/router.js as it's still using koa router * Revert "fix: use two separate routes to simulate :param* in hono" This reverts commit b00a0a74a025939d0a59c3f8f7b3b7038c13f715. * fix: use :param{.+}? to simulate :param* * feat: add hint about trailing slash in error message --- lib/errors/index.ts | 3 +++ lib/routes/8kcos/router.ts | 2 +- lib/routes/abc/router.ts | 2 +- lib/routes/asiantolick/router.ts | 2 +- lib/routes/bnu/router.ts | 2 +- lib/routes/buaa/router.ts | 2 +- lib/routes/cas/router.ts | 4 ++-- lib/routes/cfmmc/router.ts | 2 +- lib/routes/chinawriter/router.ts | 2 +- lib/routes/cmde/router.ts | 2 +- lib/routes/cs/router.ts | 2 +- lib/routes/discuz/router.ts | 6 +++--- lib/routes/getitfree/router.ts | 2 +- lib/routes/github/router.ts | 2 +- lib/routes/gov/router.ts | 30 +++++++++++++-------------- lib/routes/iqilu/router.ts | 2 +- lib/routes/jiemian/router.ts | 2 +- lib/routes/kantarworldpanel/router.ts | 2 +- lib/routes/liulinblog/router.ts | 2 +- lib/routes/logclub/router.ts | 2 +- lib/routes/m4/router.ts | 2 +- lib/routes/mail/router.ts | 2 +- lib/routes/mydrivers/router.ts | 2 +- lib/routes/ncc-cma/router.ts | 2 +- lib/routes/papers/router.ts | 2 +- lib/routes/people/router.ts | 2 +- lib/routes/pnas/router.ts | 2 +- lib/routes/qianp/router.ts | 2 +- lib/routes/qiyoujiage/router.ts | 2 +- lib/routes/rfi/router.ts | 2 +- lib/routes/stheadline/router.ts | 2 +- lib/routes/surfshark/router.ts | 2 +- lib/routes/tfc-taiwan/router.ts | 2 +- lib/routes/toodaylab/router.ts | 2 +- lib/routes/tradingview/router.ts | 2 +- lib/routes/whu/router.ts | 4 ++-- lib/routes/wmc-bj/router.ts | 2 +- lib/routes/worldjournal/router.ts | 2 +- lib/routes/xjtu/router.ts | 6 +++--- lib/routes/xmnn/router.ts | 2 +- 40 files changed, 62 insertions(+), 59 deletions(-) diff --git a/lib/errors/index.ts b/lib/errors/index.ts index db0c66849a..dd69b50ff6 100644 --- a/lib/errors/index.ts +++ b/lib/errors/index.ts @@ -68,6 +68,9 @@ export const errorHandler: ErrorHandler = (error, ctx) => { } else if (error instanceof NotFoundError) { ctx.status(404); message = 'wrong path'; + if (ctx.req.path.endsWith('/')) { + message += ', you can try removing the trailing slash in the path'; + } } else { ctx.status(404); } diff --git a/lib/routes/8kcos/router.ts b/lib/routes/8kcos/router.ts index abbe2965c9..8c973affa3 100644 --- a/lib/routes/8kcos/router.ts +++ b/lib/routes/8kcos/router.ts @@ -1,5 +1,5 @@ export default (router) => { router.get('/', './latest'); - router.get('/cat/:cat*', './cat'); + router.get('/cat/:cat{.+}?', './cat'); router.get('/tag/:tag', './tag'); }; diff --git a/lib/routes/abc/router.ts b/lib/routes/abc/router.ts index cffd8f2def..acb19ed1b5 100644 --- a/lib/routes/abc/router.ts +++ b/lib/routes/abc/router.ts @@ -1,3 +1,3 @@ export default (router) => { - router.get('/:category*', './'); + router.get('/:category{.+}?', './'); }; diff --git a/lib/routes/asiantolick/router.ts b/lib/routes/asiantolick/router.ts index cffd8f2def..acb19ed1b5 100644 --- a/lib/routes/asiantolick/router.ts +++ b/lib/routes/asiantolick/router.ts @@ -1,3 +1,3 @@ export default (router) => { - router.get('/:category*', './'); + router.get('/:category{.+}?', './'); }; diff --git a/lib/routes/bnu/router.ts b/lib/routes/bnu/router.ts index 5cc4e62f04..ae82e951a0 100644 --- a/lib/routes/bnu/router.ts +++ b/lib/routes/bnu/router.ts @@ -1,6 +1,6 @@ export default (router) => { router.get('/bs/:category?', './bs'); router.get('/dwxgb/:category/:type', './dwxgb'); - router.get('/fdy/:path*', './fdy'); + router.get('/fdy/:path{.+}?', './fdy'); router.get('/lib/:category?', './lib'); }; diff --git a/lib/routes/buaa/router.ts b/lib/routes/buaa/router.ts index 572c3dae8a..4993c75d58 100755 --- a/lib/routes/buaa/router.ts +++ b/lib/routes/buaa/router.ts @@ -1,4 +1,4 @@ export default (router) => { router.get('/news/:type', './news/index'); - router.get('/sme/:path*', './sme'); + router.get('/sme/:path{.+}?', './sme'); }; diff --git a/lib/routes/cas/router.ts b/lib/routes/cas/router.ts index cb0164c4f9..45a4f81501 100644 --- a/lib/routes/cas/router.ts +++ b/lib/routes/cas/router.ts @@ -1,9 +1,9 @@ export default (router) => { router.get('/cg/:caty?', './cg/index'); - router.get('/genetics/:path+', './genetics/index'); + router.get('/genetics/:path{.+}', './genetics/index'); router.get('/ia/yjs', './ia/yjs'); router.get('/iee/kydt', './iee/kydt'); - router.get('/is/:path+', './is/index'); + router.get('/is/:path{.+}', './is/index'); router.get('/mesalab/kb', './mesalab/kb'); router.get('/sim/kyjz', './sim/kyjz'); }; diff --git a/lib/routes/cfmmc/router.ts b/lib/routes/cfmmc/router.ts index b00fca6005..5250d55fc4 100644 --- a/lib/routes/cfmmc/router.ts +++ b/lib/routes/cfmmc/router.ts @@ -1,3 +1,3 @@ export default (router) => { - router.get('/:id*', './'); + router.get('/:id{.+}?', './'); }; diff --git a/lib/routes/chinawriter/router.ts b/lib/routes/chinawriter/router.ts index b00fca6005..5250d55fc4 100644 --- a/lib/routes/chinawriter/router.ts +++ b/lib/routes/chinawriter/router.ts @@ -1,3 +1,3 @@ export default (router) => { - router.get('/:id*', './'); + router.get('/:id{.+}?', './'); }; diff --git a/lib/routes/cmde/router.ts b/lib/routes/cmde/router.ts index d78ef6be00..1aae1e8b1f 100644 --- a/lib/routes/cmde/router.ts +++ b/lib/routes/cmde/router.ts @@ -1,3 +1,3 @@ export default (router) => { - router.get('/:cate*', './index'); + router.get('/:cate{.+}?', './index'); }; diff --git a/lib/routes/cs/router.ts b/lib/routes/cs/router.ts index f994ea4a80..18c50902be 100644 --- a/lib/routes/cs/router.ts +++ b/lib/routes/cs/router.ts @@ -9,5 +9,5 @@ export default (router) => { router.get('/news/zzkx', toZzkx); router.get('/zzkx', toZzkx); router.get('/video/:category?', './video'); - router.get('/:category*', './'); + router.get('/:category{.+}?', './'); }; diff --git a/lib/routes/discuz/router.ts b/lib/routes/discuz/router.ts index 187287dc8a..a37381c9d6 100644 --- a/lib/routes/discuz/router.ts +++ b/lib/routes/discuz/router.ts @@ -1,5 +1,5 @@ export default (router) => { - router.get('/:ver([7|x])/:cid([0-9]{2})/:link(.*)', './discuz'); - router.get('/:ver([7|x])/:link(.*)', './discuz'); - router.get('/:link(.*)', './discuz'); + router.get('/:ver{[7x]}/:cid{[0-9]{2}}/:link{.+}', './discuz'); + router.get('/:ver{[7x]}/:link{.+}', './discuz'); + router.get('/:link{.+}', './discuz'); }; diff --git a/lib/routes/getitfree/router.ts b/lib/routes/getitfree/router.ts index 294eda5f5e..411afc13bb 100644 --- a/lib/routes/getitfree/router.ts +++ b/lib/routes/getitfree/router.ts @@ -1,3 +1,3 @@ export default (router) => { - router.get('/:filter*', './index'); + router.get('/:filter{.+}?', './index'); }; diff --git a/lib/routes/github/router.ts b/lib/routes/github/router.ts index 4811c0bb2a..9fcbda5ba2 100644 --- a/lib/routes/github/router.ts +++ b/lib/routes/github/router.ts @@ -3,7 +3,7 @@ export default (router) => { router.get('/comments/:user/:repo/:type/:number', './comments'); // deprecated router.get('/comments/:user/:repo/:number?', './comments'); router.get('/contributors/:user/:repo/:order?/:anon?', './contributors'); - router.get('/file/:user/:repo/:branch/:filepath+', './file'); + router.get('/file/:user/:repo/:branch/:filepath{.+}', './file'); router.get('/gist/:gistId', './gist'); router.get('/issue/:user/:repo/:state?/:labels?', './issue'); router.get('/notifications', './notifications'); diff --git a/lib/routes/gov/router.ts b/lib/routes/gov/router.ts index 4b37c2a103..013e74ccb1 100644 --- a/lib/routes/gov/router.ts +++ b/lib/routes/gov/router.ts @@ -3,14 +3,14 @@ export default (router) => { router.get('/cac/*', './cac/index'); router.get('/caac/cjwt/:category?', './caac/cjwt'); router.get('/ccdi/*', './ccdi'); - router.get('/chinamine-safety/zfxxgk/:category*', './chinamine-safety/zfxxgk'); - router.get('/chinamine-safety/xw/:category*', './chinamine-safety/xw'); + router.get('/chinamine-safety/zfxxgk/:category{.+}?', './chinamine-safety/zfxxgk'); + router.get('/chinamine-safety/xw/:category{.+}?', './chinamine-safety/xw'); router.get('/chinatax/latest', './chinatax/latest'); router.get('/cmse/fxrw', './cmse/fxrw'); router.get('/cmse/*', './cmse'); router.get('/cnnic/*', './cnnic'); router.get('/csrc/auditstatus/:apply_id', './csrc/auditstatus'); - router.get('/csrc/news/:suffix*', './csrc/news'); + router.get('/csrc/news/:suffix{.+}?', './csrc/news'); router.get('/customs/list/:gchannel?', './customs/list'); router.get('/fmprc/:category?', './mfa/wjdt'); router.get('/forestry/gjlckjdjt/:category?', './forestry/gjlckjdjt'); @@ -20,26 +20,26 @@ export default (router) => { router.get('/mee/ywdt/:category?', './mee/ywdt'); router.get('/mem/gk/sgcc/:category?', './mem/sgcc'); router.get('/mfa/wjdt/:category?', './mfa/wjdt'); - router.get('/mot/:category*', './mot'); + router.get('/mot/:category{.+}?', './mot'); router.get('/miit/wjfb/:ministry', './miit/wjfb'); router.get('/miit/yjzj', './miit/yjzj'); router.get('/miit/zcwj', './miit/zcwj'); router.get('/miit/wjgs', './miit/wjgs'); router.get('/miit/zcjd', './miit/zcjd'); - router.get('/moa/sjzxfb/:category*', './moa/zdscxx'); - router.get('/moa/zdscxx/:category*', './moa/zdscxx'); - router.get('/moa/:suburl(.*)', './moa/moa'); + router.get('/moa/sjzxfb/:category{.+}?', './moa/zdscxx'); + router.get('/moa/zdscxx/:category{.+}?', './moa/zdscxx'); + router.get('/moa/:suburl{.+}', './moa/moa'); router.get('/moe/:type', './moe/moe'); router.get('/moe/s78/:column', './moe/s78'); router.get('/mof/bond/:category?', './mof/bond'); - router.get('/mofcom/article/:suffix+', './mofcom/article'); + router.get('/mofcom/article/:suffix{.+}', './mofcom/article'); router.get('/moj/aac/news/:type?', './moj/aac/news'); router.get('/moj/lfyjzj', './moj/lfyjzj'); - router.get('/ndrc/fggz/:category*', './ndrc/fggz'); - router.get('/ndrc/xwdt/:category*', './ndrc/xwdt'); + router.get('/ndrc/fggz/:category{.+}?', './ndrc/fggz'); + router.get('/ndrc/xwdt/:category{.+}?', './ndrc/xwdt'); router.get('/nea/sjzz/ghs', './nea/ghs'); router.get('/news/:uid', './news'); - router.get('/nifdc/:path*', './nifdc'); + router.get('/nifdc/:path{.+}?', './nifdc'); router.get('/nmpa/*', './nmpa/generic'); router.get('/nopss/*', './nopss'); router.get('/npc/:caty', './npc/index'); @@ -53,20 +53,20 @@ export default (router) => { router.get('/safe/business/:site?', './safe/business'); router.get('/safe/complaint/:site?', './safe/complaint'); router.get('/samr/xgzlyhd/:category?/:department?', './samr/xgzlyhd'); - router.get('/sasac/:path+', './sasac/generic'); + router.get('/sasac/:path{.+}', './sasac/generic'); router.get('/stats/*', './stats'); router.get('/zhengce/govall/:advance?', './zhengce/govall'); router.get('/zhengce/wenjian/:pcodeJiguan?', './zhengce/wenjian'); router.get('/zhengce/zhengceku/:department', './zhengce/zhengceku'); router.get('/zhengce/zuixin', './zhengce'); - router.get('/zhengce/:category*', './zhengce'); + router.get('/zhengce/:category{.+}?', './zhengce'); // province router.get('/anhui/kjt/*', './anhui/kjt'); router.get('/beijing/bjedu/gh/:urlPath?', './beijing/bjedu/gh'); router.get('/beijing/bphc/*', './beijing/bphc'); router.get('/beijing/jw/tzgg', './beijing/jw/tzgg'); router.get('/beijing/kw/:channel', './beijing/kw/index'); - router.get('/chongqing/gzw/:category*', './chongqing/gzw'); + router.get('/chongqing/gzw/:category{.+}?', './chongqing/gzw'); router.get('/chongqing/rsks', './chongqing/rsks'); router.get('/chongqing/sydwgkzp', './chongqing/sydwgkzp'); router.get('/dianbai/*', './dianbai/dianbai'); @@ -95,7 +95,7 @@ export default (router) => { router.get('/sichuan/deyang/govpublicinfo/:countyName/:infoType?', './sichuan/deyang/govpublicinfo'); router.get('/sichuan/deyang/mztoday/:infoType?', './sichuan/deyang/mztoday'); router.get('/suzhou/doc', './suzhou/doc'); - router.get('/suzhou/fg/:category*', './suzhou/fg'); + router.get('/suzhou/fg/:category{.+}?', './suzhou/fg'); router.get('/suzhou/news/:uid', './suzhou/news'); router.get('/taiyuan/rsj/:caty/:page?', './taiyuan/rsj'); router.get('/wuhan/sy/whyw', './wuhan/whyw'); diff --git a/lib/routes/iqilu/router.ts b/lib/routes/iqilu/router.ts index d990c6707e..c09cc96764 100644 --- a/lib/routes/iqilu/router.ts +++ b/lib/routes/iqilu/router.ts @@ -1,3 +1,3 @@ export default (router) => { - router.get('/v/:category*', './program'); + router.get('/v/:category{.+}?', './program'); }; diff --git a/lib/routes/jiemian/router.ts b/lib/routes/jiemian/router.ts index 5a448fbbb9..357ae4f72b 100644 --- a/lib/routes/jiemian/router.ts +++ b/lib/routes/jiemian/router.ts @@ -1,4 +1,4 @@ export default (router) => { router.get('/list/:id', './list'); - router.get('/:category*', './lists'); + router.get('/:category{.+}?', './lists'); }; diff --git a/lib/routes/kantarworldpanel/router.ts b/lib/routes/kantarworldpanel/router.ts index 4ab9c9bb81..935495b1e4 100644 --- a/lib/routes/kantarworldpanel/router.ts +++ b/lib/routes/kantarworldpanel/router.ts @@ -1,3 +1,3 @@ export default (router) => { - router.get('/:region?/:category*', './'); + router.get('/:region?/:category{.+}?', './'); }; diff --git a/lib/routes/liulinblog/router.ts b/lib/routes/liulinblog/router.ts index 425afe2004..e886cec333 100644 --- a/lib/routes/liulinblog/router.ts +++ b/lib/routes/liulinblog/router.ts @@ -1,4 +1,4 @@ export default (router) => { router.get('/itnews/:channel', './itnews'); - router.get('/:params*', './'); + router.get('/:params{.+}?', './'); }; diff --git a/lib/routes/logclub/router.ts b/lib/routes/logclub/router.ts index 5421415a9c..f5a943ffcf 100644 --- a/lib/routes/logclub/router.ts +++ b/lib/routes/logclub/router.ts @@ -1,5 +1,5 @@ export default (router) => { router.get('/lc_report/:id?', './report'); router.get('/report/:id?', './report'); - router.get('/:category*', './'); + router.get('/:category{.+}?', './'); }; diff --git a/lib/routes/m4/router.ts b/lib/routes/m4/router.ts index fccbe3a58d..36962513bc 100644 --- a/lib/routes/m4/router.ts +++ b/lib/routes/m4/router.ts @@ -1,3 +1,3 @@ export default (router) => { - router.get('/:id?/:category*', './'); + router.get('/:id?/:category{.+}?', './'); }; diff --git a/lib/routes/mail/router.ts b/lib/routes/mail/router.ts index d2c2ca54b5..7120fc84e4 100644 --- a/lib/routes/mail/router.ts +++ b/lib/routes/mail/router.ts @@ -1,3 +1,3 @@ export default (router) => { - router.get('/imap/:email/:folder*', './imap'); + router.get('/imap/:email/:folder{.+}?', './imap'); }; diff --git a/lib/routes/mydrivers/router.ts b/lib/routes/mydrivers/router.ts index a802b49c33..ca671dcd7f 100644 --- a/lib/routes/mydrivers/router.ts +++ b/lib/routes/mydrivers/router.ts @@ -2,5 +2,5 @@ export default (router) => { router.get('/cid/:id?', './cid'); router.get('/rank/:range?', './rank'); router.get('/zhibo', './cid'); - router.get('/:category*', './'); + router.get('/:category{.+}?', './'); }; diff --git a/lib/routes/ncc-cma/router.ts b/lib/routes/ncc-cma/router.ts index 83b9dae976..fa60d7e38a 100644 --- a/lib/routes/ncc-cma/router.ts +++ b/lib/routes/ncc-cma/router.ts @@ -1,3 +1,3 @@ export default (router) => { - router.get('/cmdp/image/:id*', './cmdp'); + router.get('/cmdp/image/:id{.+}?', './cmdp'); }; diff --git a/lib/routes/papers/router.ts b/lib/routes/papers/router.ts index cffd8f2def..acb19ed1b5 100644 --- a/lib/routes/papers/router.ts +++ b/lib/routes/papers/router.ts @@ -1,3 +1,3 @@ export default (router) => { - router.get('/:category*', './'); + router.get('/:category{.+}?', './'); }; diff --git a/lib/routes/people/router.ts b/lib/routes/people/router.ts index 6f2aa9bc48..b222f12514 100644 --- a/lib/routes/people/router.ts +++ b/lib/routes/people/router.ts @@ -1,5 +1,5 @@ export default (router) => { router.get('/liuyan/:id/:state?', './liuyan'); router.get('/xjpjh/:keyword?/:year?', './xjpjh'); - router.get('/:site?/:category*', './'); + router.get('/:site?/:category{.+}?', './'); }; diff --git a/lib/routes/pnas/router.ts b/lib/routes/pnas/router.ts index 83ffd0cdd0..c83bd29827 100644 --- a/lib/routes/pnas/router.ts +++ b/lib/routes/pnas/router.ts @@ -1,3 +1,3 @@ export default (router) => { - router.get('/:topicPath*', './index'); + router.get('/:topicPath{.+}?', './index'); }; diff --git a/lib/routes/qianp/router.ts b/lib/routes/qianp/router.ts index 0b591ce95a..07023a0990 100644 --- a/lib/routes/qianp/router.ts +++ b/lib/routes/qianp/router.ts @@ -1,3 +1,3 @@ export default (router) => { - router.get('/news/:path*', './news'); + router.get('/news/:path{.+}?', './news'); }; diff --git a/lib/routes/qiyoujiage/router.ts b/lib/routes/qiyoujiage/router.ts index dc4c588f17..414b3edc92 100644 --- a/lib/routes/qiyoujiage/router.ts +++ b/lib/routes/qiyoujiage/router.ts @@ -1,3 +1,3 @@ export default (router) => { - router.get('/:path+', './price'); + router.get('/:path{.+}', './price'); }; diff --git a/lib/routes/rfi/router.ts b/lib/routes/rfi/router.ts index 93410ef377..8c1a0817ba 100644 --- a/lib/routes/rfi/router.ts +++ b/lib/routes/rfi/router.ts @@ -1,3 +1,3 @@ export default (router) => { - router.get('/:path*', './news'); + router.get('/:path{.+}?', './news'); }; diff --git a/lib/routes/stheadline/router.ts b/lib/routes/stheadline/router.ts index a9d9a43c63..3f445f0fba 100644 --- a/lib/routes/stheadline/router.ts +++ b/lib/routes/stheadline/router.ts @@ -1,3 +1,3 @@ export default (router) => { - router.get('/std/realtime/:category*', './std/realtime'); + router.get('/std/realtime/:category{.+}?', './std/realtime'); }; diff --git a/lib/routes/surfshark/router.ts b/lib/routes/surfshark/router.ts index 77c97e32a8..0da94e664c 100644 --- a/lib/routes/surfshark/router.ts +++ b/lib/routes/surfshark/router.ts @@ -1,3 +1,3 @@ export default (router) => { - router.get('/blog/:category*', './blog'); + router.get('/blog/:category{.+}?', './blog'); }; diff --git a/lib/routes/tfc-taiwan/router.ts b/lib/routes/tfc-taiwan/router.ts index 1599d971e5..7544e0d48f 100644 --- a/lib/routes/tfc-taiwan/router.ts +++ b/lib/routes/tfc-taiwan/router.ts @@ -1,6 +1,6 @@ export default (router) => { router.get('/', './index'); - router.get('/category/:id+', './index'); + router.get('/category/:id{.+}', './index'); router.get('/info', './index'); router.get('/report', './index'); router.get('/topic/:id', './index'); diff --git a/lib/routes/toodaylab/router.ts b/lib/routes/toodaylab/router.ts index 82774a018b..ba6dabf5de 100644 --- a/lib/routes/toodaylab/router.ts +++ b/lib/routes/toodaylab/router.ts @@ -1,3 +1,3 @@ export default (router) => { - router.get('/:params*', './'); + router.get('/:params{.+}?', './'); }; diff --git a/lib/routes/tradingview/router.ts b/lib/routes/tradingview/router.ts index d23cae06c2..f0055be509 100644 --- a/lib/routes/tradingview/router.ts +++ b/lib/routes/tradingview/router.ts @@ -1,5 +1,5 @@ export default (router) => { - router.get('/blog/:category*', './blog'); + router.get('/blog/:category{.+}?', './blog'); router.get('/desktop', './desktop'); router.get('/pine/:version?', './pine'); }; diff --git a/lib/routes/whu/router.ts b/lib/routes/whu/router.ts index 2ba9b44d75..b5dadd444e 100644 --- a/lib/routes/whu/router.ts +++ b/lib/routes/whu/router.ts @@ -1,6 +1,6 @@ export default (router) => { router.get('/cs/:type', './cs'); router.get('/gs/:type?', './gs/index.js'); - router.get('/hyxt/:category*', './hyxt'); - router.get('/news/:category*', './news'); + router.get('/hyxt/:category{.+}?', './hyxt'); + router.get('/news/:category{.+}?', './news'); }; diff --git a/lib/routes/wmc-bj/router.ts b/lib/routes/wmc-bj/router.ts index 204156cc44..66a43ca62d 100644 --- a/lib/routes/wmc-bj/router.ts +++ b/lib/routes/wmc-bj/router.ts @@ -1,3 +1,3 @@ export default (router) => { - router.get('/publish/:category*', './publish'); + router.get('/publish/:category{.+}?', './publish'); }; diff --git a/lib/routes/worldjournal/router.ts b/lib/routes/worldjournal/router.ts index 47c58ab516..942aa4ac4d 100644 --- a/lib/routes/worldjournal/router.ts +++ b/lib/routes/worldjournal/router.ts @@ -1,3 +1,3 @@ export default (router) => { - router.get('/:path*', './index'); + router.get('/:path{.+}?', './index'); }; diff --git a/lib/routes/xjtu/router.ts b/lib/routes/xjtu/router.ts index 4607c5e8a7..ed00480382 100644 --- a/lib/routes/xjtu/router.ts +++ b/lib/routes/xjtu/router.ts @@ -1,10 +1,10 @@ export default (router) => { router.get('/2yuan/news/:id?', './2yuan/news'); - router.get('/dean/:subpath+', './dean'); - router.get('/dyyy/:path+', './dyyy/index'); + router.get('/dean/:subpath{.+}', './dean'); + router.get('/dyyy/:path{.+}', './dyyy/index'); router.get('/ee/:id?', './ee'); router.get('/gs/tzgg', './gs/tzgg'); - router.get('/international/:subpath+', './international'); + router.get('/international/:subpath{.+}', './international'); router.get('/job/:subpath?', './job'); router.get('/std/:category?', './std'); }; diff --git a/lib/routes/xmnn/router.ts b/lib/routes/xmnn/router.ts index bff855ea4b..acff48cc36 100644 --- a/lib/routes/xmnn/router.ts +++ b/lib/routes/xmnn/router.ts @@ -1,4 +1,4 @@ export default (router) => { router.get('/epaper/:id?', './epaper'); - router.get('/news/:category*', './news'); + router.get('/news/:category{.+}?', './news'); };