【问题标题】:Trailing slashes in Pylons RoutesPylons Routes 中的尾部斜线
【发布时间】:2010-09-19 02:38:02
【问题描述】:

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

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

我认为打开最小化可以解决问题,但我的印象是它在新版本的 Routes 中被禁用是有原因的。不幸的是,文档似乎没有跟上 Routes 的开发,所以我找不到任何好的资源。有什么想法吗?

【问题讨论】:

    标签: python routes pylons


    【解决方案1】:

    以下 sn-p 添加为对我有用的最后一条路线:

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

    【讨论】:

    • 我 90% 确定我是在网上某处找到的,但目前我无法提供正确的归属。
    • 这很有效,并且比所有其他解决方案都简单得多。你值得点赞,好先生。
    【解决方案2】:

    有两种可能的方法来解决这个问题:

    1. Do it entirely in pylons
    2. Add an htaccess rule to rewrite the trailing slash

    我个人不喜欢尾部斜杠,因为如果你有这样的 uri:

    http://example.com/people

    您应该能够通过以下方式以 xml 格式获取相同的数据:

    http://example.com/people.xml

    【讨论】:

    • 容易猜到的 URL 是好的,所以应该允许人们去 /people 和 /people/ 看到同样的东西。规范 URL 也很好,因此其中一个应该重定向到另一个。
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 2018-07-30
      • 1970-01-01
      • 2018-04-22
      • 1970-01-01
      • 2023-01-01
      • 2011-03-04
      • 2023-01-14
      • 1970-01-01
      • 2013-02-28
      相关资源
      最近更新 更多