如果在stackoverflow.com域上的URL中意外添加了一个额外字符(如句号,逗号或括号甚至字母),则不会抛出404错误页面。相反,URL自我纠正自己&用户被引导到相关网页。
例如,当您访问以下网址时,我添加到有效SO网址末尾的额外4个字母将自动删除 - https://stackoverflow.com/questions/194812/list-of-freely-available-programming-booksasdf
我想这与ASP.NET MVC路由有关。这个功能是如何实现的?
答案 0 :(得分:2)
嗯,我猜这很简单,即使不知道它背后的代码: 该文本只是搜索引擎和阅读URL的人的糖果:
This URL will work as well, with the complete text removed!
唯一真正重要的部分是问题ID,它也嵌入在“路径”中。
答案 1 :(得分:1)
这是因为忽略http://stackoverflow.com/questions/194812
之后的所有事情。只是在那里发布链接,如果发布在某个地方,如果更多的话。
在内部,URL被映射到处理程序,例如,通过重写,转换为类似:http://stackoverflow.com/questions.php?id=194812
(仅作为示例,不知道正确的内部URL)
这也使得URL搜索引擎更友好,除了对人类更具可读性。