PHP URI 在物理上与文件系统中的路径不对应

PHP URIs not physically corresponding to path in file system

我有一个关于 URI 的问题。不过直到上周,URI 的那部分在主机之后总是在文件系统中指定真实路径。但是后来我在开发 android 应用程序时了解了内容提供商,发现示例 URI 中的 ID 231 在物理上并不对应于文件夹。

scheme://example.com/records/231/edit

当 PHP 应用程序使用像上面这样的 URI 时,我确信他们不会为服务器上的每条记录创建一个文件夹。所以我的问题是如何使用 PHP 实现这样的功能,我不知道。

网络服务器收到 URL 并以某种方式对其进行解释。最常用和规范的方法是为每个域设置一个根目录,并将域名之后的所有内容(如 /records/231/edit)映射到该根目录中的文件。

但是,对此的解释实际上取决于网络服务器(以及它的配置方式)。 Apache 网络服务器允许 URL 重写,即在内部将任何 URL / URI 重写为另一个 URL/URI。几乎每个网络服务器都提供这种或类似的重写。最常见的一种是将所有内容映射到某些 index.php(实际存在的 URI 除外),然后 index.php 查找 $_SERVER['SCRIPT_NAME'] 或其他内容,调用什么 uri 并处理请求适当地。

这样做的原因/理念是:Semantic URL