如何解决如何重定向到带有尾随斜线的 URL?
我使用 warp
来提供静态文件目录。不幸的是,这些静态文件中使用的相对链接只能在我在路径中添加斜杠时才能解析。
这是我用来提供目录的代码:
let route = warp::path("segment")
.and(warp::path("another"))
.and(warp::fs::dir("../path/to/static/files/folder"));
warp::serve(route).run(([0,0],3030)).await;
那么现在
-
0.0.0.0:3030/segment/another/
工作正常 -
0.0.0.0:3030/segment/another
不起作用
原则上我不介意这一点,只是总是使用带有斜杠的 URL,但是当我从 iOS 上的 Safari(作为 PWA)“添加到主屏幕”页面时,尾随斜杠会自动省略。
所以为了解决这个问题,我尝试创建一个重定向,然后像这样添加尾部斜杠:
let redirect = warp::path("segment").and(warp::path("another")).and(warp::path::end())
.map(|| {
warp::redirect(Uri::from_static("0.0.0.0:3030/segment/another/"))
});
但是这个重定向过滤器只匹配 0.0.0.0:3030/segment/another/
。当我省略 warp::path::end()
时,重定向适用于 0.0.0.0:3030/segment/another
,但现在所有内容(例如 0.0.0.0:3030/segment/another/styles.css
)都被重定向到 0.0.0.0:3030/segment/another/
。
有没有办法只在路径不以斜杠或文件扩展名(例如.html
、.css
等)结尾时重定向?
这也可能是我的整体方法不正确。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。