2017-09-01 66 views
0

我对URI有个疑问。直到上个星期,我认为,在主机之后URI的部分总是指定文件系统中的真实路径。但是后来在开发Android应用程序时,我开始了解内容提供者,并发现样本URI中的ID 231与物理文件夹没有物理上的对应关系。PHP URI与文件系统中的路径不物理对应

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

当PHP应用程序使用像上面这样一个URI的,我敢肯定,他们没有一个单一的文件夹为他们的服务器上的每个记录。所以我的问题是如何用PHP实现这样的功能,我不知道。

回答

0

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

但是,这个解释真的取决于网络服务器(以及它是如何配置的)。 Apache webservers允许URL重写,在内部重写任何URL/URI到另一个URL/URI。几乎每个网络服务器都提供这种类型或类似的重写。最常见的是将所有内容映射到index.php(除了实际存在的URI之外)和index.php查看$_SERVER['SCRIPT_NAME']或者查找什么,调用了什么uri并正确处理请求。

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