在最新版本的Routes(1.10)中,使尾部斜杠无关紧要的最佳方法是什么?我目前正在使用明显非DRY:
map.connect('/logs/', controller='logs', action='logs')
map.connect('/logs', controller='logs', action='logs')
我认为打开最小化功能会奏效,但我的印象是,它在新版Routes中被禁用是有原因的。不幸的是,文档似乎没有跟上Routes的开发,所以我找不到任何好的资源。有什么想法吗?
作为最后一条路由添加的以下片段对我有效:
map.redirect('/*(url)/', '/{url}',
_redirect_code='301 Moved Permanently')
有两种可能的方法来解决这个问题:
- 完全在塔架中进行
- 添加一个htaccess规则来重写尾部斜杠
就我个人而言,我不喜欢后面的斜杠,因为如果你有一个类似于的uri
http://example.com/people
您应该能够通过访问获得相同的xml格式的数据
http://example.com/people.xml
http://www.siafoo.net/snippet/275有一个基本的中间件,可以从请求中删除尾部斜杠。这是一个聪明的想法,在我意识到中间件的作用后,我对WSGI应用程序中中间件的概念有了更好的理解。