【问题标题】:Can a slash in the url be taken as a query insntead of a path to a file directory可以将 url 中的斜杠作为查询而不是文件目录的路径
【发布时间】:2021-12-30 10:49:53
【问题描述】:

根据我的有限理解,URL 中的“/”定义了应该从中提取 html 的文件目录中的路径。

那么,像 reddit 这样的网站怎么可能有诸如“reddit.com/u/username”之类的 URL,其中斜杠没有定义文件目录,而是更多地被视为从一个请求某些数据的查询用户?你不应该得到一个错误,该站点不存在,因为它实际上不是目录中的文件吗?

【问题讨论】:

标签: php


【解决方案1】:

根据我的有限理解,URL 中的“/”定义了应该从中提取 html 的文件目录中的路径。

没有。它在从 HTTP 服务器请求的路径中定义了一个路径段。

HTTP 服务器是软件,它可以被编写为以开发人员喜欢的任何方式处理该路径。

“将 URL 路径映射到文件系统路径”只是 HTTP 服务器处理 URL 中的路径的一种(简单且常见的)方式。

“将其传递给读取整个 URL 并以自定义方式执行的服务器端程序”是另一个。如果您使用的是 PHP,那么您可能会阅读 $_SERVER['REQUEST_URI']

“将路径段转换为不同 URL 上的查询字符串参数并再次有效地开始请求处理”是另一个。通常,如果您使用的是 Apache HTTPD,您会为此使用 mod_rewrite

“拥有一个将它们直接映射到函数的自定义网络服务器”是另一个。这是在 Node.js 中编写服务器端代码时的常用方法(例如使用 Express routes)。

【讨论】:

    【解决方案2】:

    因为他们使用rewrite 来获取漂亮的网址。

    【讨论】:

    • mod_rewrite 是一种基于编程框架何时使用查询字符串来实现特定 Web 服务器的方法。还有很多其他方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-12
    • 2011-11-25
    • 2022-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多