V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
TONYHEAD
V2EX  ›  Project Babel

关于PB地址中最后的“/”

  •  
  •   TONYHEAD · 2012-06-14 10:27:04 +08:00 · 4824 次点击
    这是一个创建于 4575 天前的主题,其中的信息可能已经有所发展或是发生改变。
    输入 http://www.v2ex.com/go/wordpress 是WordPress的节点,而在尾部加上"/"号却显示404 Not Found ( http://www.v2ex.com/go/wordpress/

    在地址栏的尾部输入"/"纯属我的个人习惯,因为感觉URL会比较完整例如 http://www.abc.com/about/ ,而大部分网站在目录的后面加不加"/"显示的内容是一样,不知道 @Livid 是怎么看的呢?谢谢。
    7 条回复    1970-01-01 08:00:00 +08:00
    westy
        1
    westy  
       2012-06-14 10:36:52 +08:00   ❤️ 1
    个人见解:
    1、example.com/something, 这是请求example.com根目录下的something这个资源, example.com/something/ 这是请求example.com根目录下的something文件夹(中的索引文件,比如index.html等web server定义的默认资源)。
    2、以此来看,V2EX节点类似于文件夹,应该带上最终的/,而帖子更像一个资源(文件),不应该带最后的/
    3、为了保证内容不重复,应当在末尾带/和不带的两个url间,选一个最终想用的,然后另一个用301跳转到默认的,以防两个url内容一样招致搜索引擎惩罚。
    gonghao
        2
    gonghao  
       2012-06-14 10:44:48 +08:00   ❤️ 1
    我记得 Flask 里面的规则是,如果 @app.route('/something/') 那么 /something 会 301 到 /something/

    反之,如果定义 @app.route('/something') 则 /something/ 会 404

    ref: http://flask.pocoo.org/docs/quickstart/#routing

    因此正如楼上所解释,/ 与 非/ 代表两种含义,不能简单的 301 跳转,Flask 的处理方法应该是比较合理的~
    mckelvin
        3
    mckelvin  
       2012-06-14 12:29:50 +08:00   ❤️ 1
    前两天也在思考这问题,豆瓣全带/的
    Showfom
        4
    Showfom  
       2012-06-14 12:57:40 +08:00   ❤️ 1
    带/是目录,不带是文件
    aggron
        5
    aggron  
       2012-06-14 13:08:04 +08:00   ❤️ 1
    个人喜好吧。我比较习惯 带查询参数和文件后缀的不带/,比如?page=1,index.html之类的,其他的都带/
    Livid
        6
    Livid  
    MOD
       2012-06-14 14:14:13 +08:00   ❤️ 1
    In my understanding, wordpress after /go/ means it is a parameter for /go/ , I don't think it's a folder.
    evlos
        7
    evlos  
       2012-06-14 14:50:17 +08:00   ❤️ 1
    PB3 用的是 Tornado,里面的路由规则大概是这样的:
    handlers = [
    (r"/", HomeHandler),
    (r"/archive", ArchiveHandler),
    (r"/feed", FeedHandler),
    ]
    用 /archive 访问 ArchiveHandler,但是用 /archive 却是 404。

    但是由于这个参数支持正则,所以如果改成 (r"/archive[/]*", ArchiveHandler), 就能同时匹配有斜杠和没有斜杠的。@Livid

    @Showfom - =

    @gonghao flask 也是这样?!我还以为是 tornado 的问题 - -
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5877 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 02:19 · PVG 10:19 · LAX 18:19 · JFK 21:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.