Pylons Routes中的尾随斜杠

时间:2008-10-24 20:42:09

标签: python routes pylons

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

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

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

3 个答案:

答案 0 :(得分:16)

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

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

答案 1 :(得分:7)

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

  1. Do it entirely in pylons
  2. Add an htaccess rule to rewrite the trailing slash
  3. 就个人而言,我不喜欢尾随斜线,因为如果你有一个像这样的uri:

    http://example.com/people

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

    http://example.com/people.xml

答案 2 :(得分:2)

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