我试着用下面的重定向前两个作品,最后一个不工作。不知道我是否做得正确
重定向工作:
/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
型
1条答案
按热度按时间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-但它本质上实现了我提到的模式:还有第三条路径,即边函数,您可以更精细地指定它,让我们与Deno的集成为您完成类似的Map工作:https://edge-functions-examples.netlify.app/example/rewrite就是一个示例。
请注意,我不太可能看到对这篇文章的回应,所以如果你有后续问题,我建议你在我们的论坛上提问,地址是https://answers.netlify.com。
祝你好运!