如果在没有帖子的情况下访问帖子,SO如何添加URL的友好部分?

时间:2013-09-03 09:37:58

标签: asp.net-mvc-routing

SO问题的网址格式如下:

https://stackoverflow.com/questions/123456/description-from-title-of-question

我已经知道的

是使用MVC路由完成的,我自己也是这样做的。

当您转到相同的网址时,但最后没有友好位:

https://stackoverflow.com/questions/123456

然后StackOverflow会为您添加友好位,您最终会在浏览器地址栏中显示相同的地址:

https://stackoverflow.com/questions/123456/description-from-title-of-question

我的问题是,SO是如何做到这一点的?它是否涉及到数据库,获取标题描述并重定向到包含最后标题的路由(创建新请求)?或者MVC路由中有哪些东西可以处理这个问题?或者它是通过javascript或其他东西添加到客户端?

我也有兴趣听取其他人对这方面的好方法的看法,以及SO如何做到这一点。

1 个答案:

答案 0 :(得分:1)

这不是MVC路由,他们从URL获取ID并将(HTTP 302)重定向到完全合格的SEO友好URL。也就是说,重定向由服务器完成,而不是使用JavaScript。

他们使用广泛的缓存,因此大多数时候他们不会获取数据库,而是内存映射表或某些二级缓存,例如Redis。

阅读有关StackOverflow缓存的深入概述:https://meta.stackexchange.com/a/69172