2015-08-09 2 views
-3

Возьмите Dropbox, например. Когда пользователь создает новую папку, затем создается папка как часть подкаталога, доступная только для них, если не указано иное, чтобы они могли загружать файлы на нее. Но как они могут просматривать содержимое папки на веб-странице? Скажем, например, что page.php - это веб-страница, на которой можно просмотреть все содержимое папок. Если новая папка создается пользователем, скопирована ли page.php и помещена в новую папку? Например:Как просмотреть страницу во вновь создаваемом подкаталоге, созданном пользователем?

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

Есть ли копия page.php в каждом пользователе, созданного папку во всех вложенных каталогах, так что пользователи могут просматривать содержимое этой папки? Это имеет смысл для меня, но так ли это, или есть другой путь?

+0

Скорее страница HTML создается динамически, когда пользователь делает запрос, чтобы увидеть каталог или подкаталог. – BigScar

ответ

0

Dropbox фактически не создает файлы на своем веб-сервере, соответствующие пути в URL-адресе. Вместо этого вы видите, что URL-адреса выглядят дружелюбно. Это называется «переписывание URL», и точная конфигурация этого поведения зависит от вашего веб-сервера. Для 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, а файл наиболее конечно не называется home.php, но это не имеет значения для данного примера)

Отсюда, home.php скрипт смотрит на свой параметр $_GET['query'] и разбирает из тока дорожка. Вероятно, это связано с поиском базы данных и тем, что Dropbox использует для управления своими файлами, но это выходит за рамки вашего вопроса.

Ни в коем случае не файлы, записанные в файловую систему на веб-сервере; это делает схему URI безопасной для совместного использования, потому что https://www.dropbox.com/home/path/to/my/file.png, который вы видите, будет совершенно иным, чем https://www.dropbox.com/home/path/to/my/file.png другого пользователя.

Вы можете найти это руководство также полезно:

Смежные вопросы