【问题标题】:Website URL - how does stack overflow work?网站 URL - 堆栈溢出如何工作?
【发布时间】:2011-05-12 20:39:27
【问题描述】:

我不知道如何在谷歌上搜索这个。也许有人可以解释一下。一个网站(如堆栈溢出)如何具有网址“http://stackoverflow.com/questions/..somenumber../the-title-of-the-question-or-something-like-that

并且它能够提出带有该问题的网页。有人可以向我解释这是怎么做的吗?它是某种形式的javascript吗?我试图思考这个问题以及如何解决它,但这让我感到困惑。在 Web 开发方面,我也是一个菜鸟。

【问题讨论】:

    标签: url web


    【解决方案1】:

    StackOverflow 使用ASP.Net MVC Framework,它允许您创建由操作方法处理的任意 URL 路由。

    您也可以使用ASP.Net routing 执行此操作;类似的框架可用于其他平台。

    在较低级别上,浏览器向 Web 服务器发送包含任意路径的请求;服务器可以使用该路径执行任何操作以发送响应。
    URL 中的路径与文件系统之间没有内在关系。

    大多数网络服务器通常会在路径中提供文件的内容,但这不是必需的。

    【讨论】:

    • 亲爱的,谢谢你的回答。我想知道这个功能是否有效。因为必须有某种文件(在我看来)才能工作。但由于它是一个 ASP.NET 框架,所以一切都说得通。谢谢!
    • @Michael:在任何其他框架或网络服务器中也是如此。
    • @Michael:Web 服务器将路径映射到特定资源。该资源不必是文件。
    • @Michael:您可以使用 mod_rewrite 模块对 Apache 服务器执行相同的操作。这需要一些正则表达式的知识。
    • @Brendan,它几乎不需要任何关于 mod_rewrite 的知识。您可以将所有内容重定向/重写到 x.php 并使用 php 以任何您想要的方式解析 $_SERVER['REQUEST_URI']。
    【解决方案2】:

    那个“somenumber”是数据库中问题的ID。 somenumber/ 之后的任何内容都是出于 SEO 目的。这就是所有这些链接都有效的原因。

    http://stackoverflow.com/questions/4229090/website-url-how-does-stack-overflow-work
    http://stackoverflow.com/questions/4229090
    http://stackoverflow.com/questions/4229090/foobar
    

    它只是引用该 ID 来提出问题

    【讨论】:

    • 为了对 SO 完全公平,在 URL 中包含一些信息性文本也有利于用户,这不仅仅是 SEO 游戏。
    【解决方案3】:

    在 SO 的情况下,服务器端进程从 URL 中提取问题编号 (4229090) 并忽略其余部分 (website-url-how-does-stack-overflow-work)。它使用该数字进行数据库查找。

    有很多不同的方法可以提取该数字。具体取决于您的编程环境。

    【讨论】:

      猜你喜欢
      • 2013-08-21
      • 2019-05-18
      • 1970-01-01
      • 2011-11-22
      • 2014-01-21
      • 2010-11-30
      • 1970-01-01
      • 1970-01-01
      • 2012-09-18
      相关资源
      最近更新 更多