如何在用户创建的新创建的子目录中查看页面?

时间:2015-08-09 13:52:50

标签: php subdirectory

以Dropbox为例。当用户创建新文件夹时,会创建一个文件夹作为子目录的一部分,除非另有说明,否则只能访问它们,以便他们可以将文件上传到它。但他们如何才能在网页上查看文件夹的内容?比如说,例如,page.php是可以查看所有文件夹内容的网页。如果用户创建了一个新文件夹,是否将page.php复制并放入新文件夹?例如:

www.domain.com/folder/page.php
www.domain.com/folder/newfolder/page.php

在所有子目录中的每个用户创建的文件夹中是否都有page.php的副本,以便用户可以查看该文件夹的内容?这对我来说是有道理的,但它是如何完成的,还是有另一种方式?

1 个答案:

答案 0 :(得分:0)

Dropbox实际上并未在其网络服务器上创建与URL中的路径匹配的文件。您所看到的是一种使URL看起来友好的方法。这称为" URL重写",此行为的确切配置取决于您的Web服务器。对于Apache,您使用mod_rewrite模块。

例如,当您登录并钻取一些子文件夹时,您的Dropbox可能如下所示:

  

https://www.dropbox.com/home/path/to/my/file.png

在内部,网络服务器将其转换为:

  

https://www.dropbox.com/home.php?query=path/to/my/file.png

(Dropbox可能不使用PHP,并且文件肯定不会被称为unsafePerformIO,但这对于此示例并不重要)

从这里开始,home.php脚本会查看其home.php参数并解析当前路径。这可能涉及数据库查找以及Dropbox用于实际管理文件的任何内容,但这超出了您的问题的范围。

网络服务器上的文件系统绝不会写入文件;这使得URI方案可以安全地防止共享,因为您看到的https://www.dropbox.com/home/path/to/my/file.png与其他用户的https://www.dropbox.com/home/path/to/my/file.png完全不同。

您可能会发现本指南也很有用: