Rust Rocket.rs子域路由

Rust Rocket.rs子域路由,rust,rust-rocket,Rust,Rust Rocket,有没有办法以不同方式处理来自不同子域的请求?例如,我有www.example.com,我想返回www.html和aaa.example.com,我想返回aaa.html 我知道如何获取主机名,我总是可以检查它,并有不同的分支响应相同的请求,每个分支检查不同的主机名,但这似乎有点过分 我想知道是否有这样的事情: #[get("/", host="www.example.com")] fn index() -> &'static str { "www" } #[get("/"

有没有办法以不同方式处理来自不同子域的请求?例如,我有
www.example.com
,我想返回
www.html
aaa.example.com
,我想返回
aaa.html

我知道如何获取主机名,我总是可以检查它,并有不同的分支响应相同的请求,每个分支检查不同的主机名,但这似乎有点过分

我想知道是否有这样的事情:

#[get("/", host="www.example.com")]
fn index() -> &'static str {
    "www"
}

#[get("/", host="aaa.example.com")]
fn index() -> &'static str {
    "aaa"
}

我不知道这在Rocket中是否可用,但请注意,这通常是通过web堆栈的其他部分完成的,例如反向代理(例如,nginx)。当然,如果你没有使用一个条件句,那么它比一堆条件句有更大的变化:)嗯,是的,我没有。我正在学习web服务器/安全性,因此我正在尝试从小组开始构建它。现在我只使用条件句,谢谢!考虑到您已经知道如何获取主机名,您可能会构建一个请求保护。@olehermanse在这里查看我的要点。基本上,每个路由都有一个参数,实现FromRequest并在匹配时输出成功,但在不匹配时转发(这个示例是一个最小的示例,我没有测试它,但它应该可以工作,只需将实际URL替换为您想要的URL,等等)。@vcapra1谢谢!我设法使它以一种稍微不同的方式工作,请参见我对您要点的评论: