网址设计:http:// domain / app / document123 / edit或http:// domain / app / edit / document123?

时间:2010-02-15 01:03:50

标签: url seo friendly-url

假设我有一个应用程序,在该应用程序中我需要查看和编辑“文档”。我在考虑这个网址设计。

  1. 要提取ID为“x123”的文档的默认视图:

    http://domain/app/document-x123

  2. 编辑同一文档:

    http://domain/app/document-x123/edit

  3. 删除

    http://domain/app/document-x123/delete

  4. 这更多来自于我在OO观点中将文档视为对象(例如“object.Action()”)。这是坏事吗?我会遇到麻烦吗?也就是说#s 2和3如下所示会更好吗?

    1

    http://domain/app/edit/document-x123
    

    2

    http://domain/app/delete/document-x123
    

3 个答案:

答案 0 :(得分:3)

resource.action(id)对我来说更自然......所以网址会是:

http://domain/app/documents/delete/x123

答案 1 :(得分:2)

我喜欢http://domain/app/document-x123/edit偏好。

参加livejournal:

http://jwz.livejournal.com/

http://jwz.livejournal.com/profile

http://jwz.livejournal.com/calendar

(抱歉jwz现在当人们谷歌你会出现这个。)

或者SO:

https://stackoverflow.com/users/208990/chris-simmons https://stackoverflow.com/users/208990?tab=activity#tab-top

或Twitter API:

http://apiwiki.twitter.com/Twitter-REST-API-Method:-POST-listshttp://api.twitter.com/1/ 用户 /lists.format)

对我来说,URL目录从“常规”变为特定。好的,我在stackoverflow.com。现在我正在缩小到“用户”。现在我选择了一个特定的用户。现在我正在看他的活动。

或者“我想访问twitter api。现在我想转移到特定用户。现在我想要他们的列表”。

所以我认为你的直觉很好,并且它与其他的intertubes所做的一致!

答案 2 :(得分:1)

正如qwerty所说,我喜欢资源的概念 - >行动 - > ID,但有关于两者的内容(以更加语义的方式)

如果你在公司的example.com上查看这个虚构的表单生成器的URL:

http://example.com/form/view/1

你最有可能把它分解为:

1) Use the Form Module
2) Use the View Module (or pass it as an action)
3) Pass the ID 1 to the module

我认为这个URL看起来好像是通过Form :: View模块传递数字1并获取数据。

现在,如果你看看这个其他想象的表单生成器:

http://example.com/form/1/view

您可以将其分解为此

1) Use the Form Module
2) Open up the data for ID 1
3) Preform the action 'view' on the ID 1

我认为此网址使您看起来正在打开ID 1的数据并对其执行预处理和操作。

我认为两者都同样有效,主要是在语义上。