花式url的工作


working of fancy url

在我看到的一些网站中,url很花哨,而且只包含文本。没有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

那么我们如何获取细节呢?那就是如何使用这个how-can-i-rewrite-url-to-fancy-url而不是问题id来识别问题?

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

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

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