尾部斜線

自動新增或移除結尾 / 的中介軟體。

使用場景

尾部斜線中介軟體在以下情境中特別實用:

  • URL 標準化:確保所有 URL 遵循一致的格式(統一新增或移除結尾斜線),有助於提升 SEO 並避免重複內容問題。

  • 簡化路由處理:無需為有斜線和無斜線的情況分別編寫路由處理邏輯,中介軟體會自動處理此類轉換。

  • 相容性:某些客戶端可能會自動新增或移除 URL 結尾的斜線,此中介軟體可確保請求被正確路由。

  • 重新導向管理:可設定為自動將帶斜線的 URL 重新導向至不帶斜線的 URL(或反之),提升使用者體驗。

  • 避免路由衝突:在許多 Web 框架中,/path/path/ 可能被視為不同的路由,此中介軟體可統一處理。

範例程式碼

main.rs
Cargo.toml
use salvo::prelude::*;
use salvo::trailing_slash::add_slash;

#[handler]
async fn hello() -> &'static str {
    "Hello"
}

#[tokio::main]
async fn main() {
    tracing_subscriber::fmt().init();
    let router = Router::with_hoop(add_slash())
        .push(Router::with_path("hello").get(hello))
        .push(Router::with_path("hello.world").get(hello));
    let acceptor = TcpListener::new("0.0.0.0:8698").bind().await;
    Server::new(acceptor).serve(router).await;
}