一千萬個為什麽

搜索

為什麽帶有兩個連字符(在一個段中)的URL與路由表中的路由不匹配?

我正在嘗試解決此URL路由:

Route articlesByCategory = new Route("articles/c{cid}-{category}", new Handler);

但是,似乎以下網址無法解析此路線:

// doesn't work
www.site.com/articles/c24-this-is-the-category-title

// This works
www.site.com/articles/c24-category

我認為這與標題中的短劃線有關,但有人能告訴我為什麽這樣做會這樣嗎?

有沒有辦法允許標題中的破折號為這樣的URL路線?

最佳答案

哪個連字符是分隔符?

服務器不知道您的URL中的哪個連字符是從 category 分隔 cid 。這就是它無法運作的原因。您可以通過在類別值中使用除破折號之外的其他內容來解決此問題。 編寫一個自定義Route類,它將更靈活地定義。

This answer on Stackoverflow may help you, because it can easily be used in your case...

轉載註明原文: 為什麽帶有兩個連字符(在一個段中)的URL與路由表中的路由不匹配?