问题

在最新版本的路线(1.10)中,使尾随斜杠无关紧要的最佳方法是什么?我目前正在使用明显的非DRY:

map.connect('/logs/', controller='logs', action='logs')
map.connect('/logs', controller='logs', action='logs')

我认为转向最小化可以解决这个问题,但是由于某种原因,它在新版Routes中被禁用了。不幸的是,文档似乎没有赶上Routes开发,所以我找不到任何好的资源去。有什么想法吗?

解决方案

有两种方法可以解决这个问题:

  1. 完全在挂架中完成
  2. 添加htaccess规则以重写尾部斜杠
  3. 就个人而言,我不喜欢尾随斜线,因为如果你有一个像这样的uri:

    http://example.com/people

    您应该能够以xml格式获取相同的数据,请访问:

    http://example.com/people.xml

其他提示

以下代码片段作为最后一条路线添加了我:

map.redirect('/*(url)/', '/{url}',
             _redirect_code='301 Moved Permanently')

http://www.siafoo.net/snippet/275 有一个基本的部分中间件,从请求中删除尾部斜杠。聪明的想法,在我意识到这一点后,我更了解WSGI应用程序中的中间件概念。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow