我已经阅读了一些关于友好 url 的内容,但我不确定哪个更好。
我目前的网站使用的结构是 http://www.domain.com/page.php?id=2
我正在使用记录 ID 来确定页面的内容。我的记录 ID 是数字的,并且随着添加的新页面的增加而增加。现有页面的内容可能会随着时间的推移而完全改变。但是,仍然使用相同的记录 ID(这是一个 cms,因此客户端可以这样做)。
根据我的理解,我有两个友好 url 选项:
http://www.domain.com/page/2
http://www.domain.com/some-text-describing-the-page
现在因为我通过记录 ID 识别内容,所以我认为第一个选项更有意义。
我的客户似乎想要选项二。
经过一番阅读,我发现了两个相互矛盾的点。
根据 Tim Berners-Lee(WWW 的架构师),他指出您需要一个 URI,它有可能在 2 个月、2 年、200 年后保持不变。所以你不想为你的页面使用页面标题或类似的东西。如果您更改页面内容,您要么被迫更改内容并单独保留 URI,要么更改 URI 并被悬挂链接卡住。您可以在这里阅读他的文章 ( http://www.w3.org/Provider/Style/URI )
但是,互联网上的许多其他人(对我来说没有权限)明确指出,您需要有一个描述性但简短的 URI 以获得最佳 SEO 值(value)。从我读到的内容来看,主要是为了反向链接和在 anchor 文本中包含关键字,因为人们只是将链接本身用作 anchor 文本。因此,在链接本身中包含关键字有助于搜索引擎在没有自定义标题的情况下了解链接的内容。
在我看来,差异与长期 VS 短期有关。
我是否理解正确?
如果我要使用用户定义的 slug 样式 URI,我是否必须只允许我的用户在字段中输入他们想要的任何内容并检查当前数据库以查看它是否存在?如果是这样,我是否应该通过运行已知记录 id 的查询来预测静态链接,然后使用结果生成 url,该 url 将被重写回格式:http://www.domain.com/page.php?id=2
?
在我看来,这会增加很多额外开销。
最佳答案
我会在这两者之间提出一些建议:
http://www.domain.com/page/2/some-text-describing-the-page
或没有页面
:
http://www.domain.com/2/some-text-describing-the-page
你仍然可以从 Url 中获取页面 Id,并且还有一个标题!更重要的是,您仍然可以获得正确的内容,即使稍后页面标题发生变化也是如此。
所以想想这样的情况:用户创建一个页面,它收到 Id=4 并且它的标题是 My great title
。从该信息生成 Url,例如http://www.domain.com/page/3/my-great-title
。 2 个月后,用户将标题更改为 This title is better than the last one!
。网址也更改为 http://www.domain.com/page/3/this-title-is-better-then-the-last-one
。但是,Url 中仍然有 3
,因此您可以显示正确的内容!您还可以检查 Url 的其余部分是否真实,并重定向(最好是 301)到新的 Url 以让搜索引擎知道该 Url 已更改。
关于friendly-url - 将记录 ID 用于动态内容时的友好 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15369153/