1

在我看到的一些网站中,网址很花哨,而且只包含文字。没有ID(数字)或任何东西。

示例:在 stackoverflow 中,问题的示例 url 是:http://stackoverflow.com/questions/3740229/how-can-i-rewrite-url-to-fancy-url 这里3740229是问题 ID。因此,使用 mod 重写规则,我们可以获取问题 id 并将其传递到我们的 php 页面以获取该问题的详细信息。但是在某些站点中,这将不存在。例子:http://anothersite.com/questions/how-can-i-rewrite-url-to-fancy-url

那么我们如何获取详细信息呢?那是如何使用 thishow-can-i-rewrite-url-to-fancy-url而不是 question id 来识别问题?

4

1 回答 1

4

这通常称为URL slug,它确实用作它检索的内容的唯一 ID。数据库存储该唯一值how-can-i-rewrite-url-to-fancy-url并检索其内容,而不是基于数字 id 进行检索。

请注意,在幕后,数据库很可能仍然为每条记录提供唯一的数字 id,但该值不会暴露给最终用户,这通过模糊性提供了一点安全性,并防止爬网脚本简单地增加值抓取网站的所有内容。

存储新内容时,相应地处理标题(用连字符替换空格,转换为小写),并确保创建的值在您的数据库中是唯一的。如果不是,则需要在其上附加一个数字或随机字符串以确保唯一性。然后使用该值而不是 URL 中的数字 id。

于 2012-07-27T13:48:49.890 回答