我喜欢Stack Overflow的URL - 特别是表单:
这很棒,因为随着问题标题的更改,搜索引擎会输入新网址,但所有旧网址仍然有用。
杰夫在其中一个播客中提到 - 在宣布Flair功能时 - 他对这些表格中的一些设计决定表示遗憾。具体来说,他对他的伪动词感到困扰,如:
有点不清楚这些动词形式中哪一个最终更喜欢。
您更喜欢哪种模式(1或2)以及为什么?
答案 0 :(得分:8)
我更喜欢模式2,原因很简单,网址读取效果更好。比较:
如果您忘记了每个网址的最后一部分,那么在第二个网址中您就有了一个不错的恢复计划。
我的2便士!
答案 1 :(得分:2)
我的猜测是他更喜欢#2。
如果你把字符串放在第一位就意味着它总是必须在那里。否则你会看到丑陋的网址:
/users//4534905
无论你需要什么用户的id,所以这个
/user/4534905/
看起来更好看。如果你想要fakie动词,你可以将它们添加到最后。
/user/4534905/edit
答案 2 :(得分:1)
都不是。在URL中放入非英文数字ID几乎不会对搜索引擎友好。您最好使用短划线和全部小写来替换标题。所以对我来说,正确的形式是:
/question/how-do-i-bake-an-apple-pie
/user/frank-krueger
答案 3 :(得分:1)
我喜欢2号:
还:
/questions/foo
==所有问题都叫“foo”
/questions/{id}/foo
==一个名为“foo”的问题
/users/aiden
==所有用户都称为aiden
/users/{id}/aiden
==一个叫做艾登的用户
/users/aiden?a=edit
或/users/aiden/edit
==编辑名为Aiden的用户列表?
/users/{id}/edit
或/users/{id}?a=edit
更好
/rss/users/aiden
==用户的RSS更新名为aiden
/rss/users/{id}
==用户活动的RSS提要
/rss/users/{id}/aiden
== Aiden个人资料的RSS Feed更改
我不介意个人认为GET参数,并认为/ x / y / z应该引用一个可变资源,而GET / POST / PUT应该对它起作用。
我的2p
答案 4 :(得分:1)
我也喜欢第二种选择。
但我仍然认为生成的网址很难看,因为那里没有任何意义。 这就是为什么我倾向于将网址创建分为两部分:
/posts/42
/posts/42-goodbye-and-thanks-for-all-the-fish
两个URL都引用相同的文档,并且后者仅在内部查询中使用id。因此,我可以提供有意义的URL,但仍然不会使我的查询膨胀。
答案 5 :(得分:0)
/question/how-do-i-bake-an-apple-pie /question/how-do-i-bake-an-apple-pie-2 /question/how-do-i-bake-an-apple-pie-...