next.js url重定向在netlify中不适用于某些规则

ckocjqey  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(82)

我试着用下面的重定向前两个作品,最后一个不工作。不知道我是否做得正确
重定向工作:

/forums  https://test/forums  200 
 /forums/*  https://test/forums/:splat  200

字符串
重定向失败

/pushed/*/p7.min.css https://test/:splat/p7.min.css 200


URL看起来像这样。我尝试在中间加上 * 的原因是res路径之后的数字总是会改变。所以我需要一个URL重写,每次都能工作,因为我们不知道随机数

https://test1/pushed/res/638314797085341666/p7/p7.min.css
https://test2/pushed/res/638320800675496601/p7/p7.min.css

gab6jxml

gab6jxml1#

我在Netlify支持部门工作。
以后请在我们的帮助台(https://www.netlify.com/support)或论坛(https://answers.netlify.com)上提问,而不是在stackoverflow上提问,因为我们不监控它,也不监控以前被称为twitter的服务,但我碰巧注意到了你今天的推文。
@ooxvyd是正确的,因为*字符是问题所在,但不是他们所说的原因。我们的重定向坚持*只匹配“URL的其余部分”,不能用作this portion of the URL such as what is between two slashes的简写,但你要找的是占位符:https://docs.netlify.com/routing/redirects/redirect-options/#placeholders
请注意,这些也不是非常灵活的-/dir1/:placeholder/dir2将只匹配/dir1/something/dir2而不是/dir1/something/somethingelse/dir2(这里的斜线是小写),但希望这对您的用例足够了。
如果你需要后者,你将被限制在做更广泛的重定向,比如/pushed/*,并将其发送到一个页面或函数,在那里你的逻辑(在页面上:客户端JS;在函数中,你写为lambda的代码)解析出URL,并根据上下文做出更适当的响应。
例如,我们的下一个运行时适配器允许您在next.config.js中使用完整的regexp指定重定向:https://docs.netlify.com/integrations/frameworks/next-js/redirects-and-rewrites/#when-to-use-next-js-redirects-or-rewrites-但它本质上实现了我提到的模式:

  • 重定向覆盖的所有可能路径
  • 被转发到lambda函数
  • 它解析路径并返回相关数据

还有第三条路径,即边函数,您可以更精细地指定它,让我们与Deno的集成为您完成类似的Map工作:https://edge-functions-examples.netlify.app/example/rewrite就是一个示例。
请注意,我不太可能看到对这篇文章的回应,所以如果你有后续问题,我建议你在我们的论坛上提问,地址是https://answers.netlify.com
祝你好运!

相关问题