NextJS路由在确定路由时考虑/和%2F

  • 本文关键字:路由 %2F NextJS next.js
  • 更新时间 :
  • 英文 :


我有一个这样的url:manage/text_U2FsdGVkX1/7AucFzVPX7OpRHb8Dlk/ApiJsTvYroROv4Ds4oshwC+cg3a7Mz/aO应该由路由/目录/pages/manage/[id]

处理

id = testrongomeEncryptedString

然而,由于/,这不会工作。所以我决定编码这个(使用encodeURIComponent),这给了我这个url:manage/test_U2FsdGVkX1%2F7AucFzVPX7OpRHb8Dlk%2FApiJsTvYroROv4Ds4oshwC%2Bcg3a7Mz%2FaO

在我的本地开发服务器上,这工作得很好,但在生产中,我得到一个404。我猜NextJS仍然认为%2F作为/和寻找这条路线?

有办法防止这种情况吗?

如果你双重编码/解码,它工作正常

let yourValue = encodeURIComponent(encodeURIComponent(yourValue))
// Go to your route, for example:
// router.push(`/page/${yourValue}`)

在服务器端,你可以双解码,像这样:

let yourValue = decodeURIComponent(decodeURIComponent(yourValue))

最新更新