我需要知道堆栈溢出是如何在标题名称中创建URL作为页面的..
如果我问一个问题为how stackoverflow is making url
它是否为该问题创建了一个页面,或者它来自db ..如果它来自db,它是如何完成的....
答案 0 :(得分:3)
它被称为URL重写,专门用于搜索引擎。
猜测一下,我会说正在调用的逻辑网址(逻辑上)是这样的:
stackoverflow.com/questions/index.php?id=4591366
文本位可能只是为了使识别更容易,特别是对于搜索引擎。
index.php可能会加载由该ID标识的问题,在这种情况下,这是您的问题。
答案 1 :(得分:2)
http://stackoverflow.com/questions/4591366/how-stackoverflow-is-making-url
4591366 - 问题ID how-stackoverflow-is-making-url - 在正确处理stackoverflow后如何使用主题创建的字符串
虽然检索问题ID只是足够的,而主题将有助于搜索引擎优化的东西
答案 2 :(得分:2)
该号码是主键。处理实际请求时,将忽略事后的部分。所以:
http://stackoverflow.com/questions/4591366/
和
http://stackoverflow.com/questions/4591366/made%20up
都工作。
但是,链接和重定向是以这种方式生成的(通过包含标题)用于搜索引擎优化。
答案 3 :(得分:1)
StackOverflow使用ASP.NET MVC Routing来实现其URL。
他们将使用类似于此的路由映射:
"{question}/{id}"
然后在URL中,他们只添加问题的标题,这些标题被路由逻辑忽略但用于搜索引擎优化。
来源: Hanselminutes播客134 - StackOverflow使用ASP.NET MVC - Jeff Atwood及其技术团队,http://www.hanselman.com/blog/HanselminutesPodcast134StackOverflowUsesASPNETMVCJeffAtwoodAndHisTechnicalTeam.aspx