Я правильно понимаю: у вас есть доступ к директории N своего сайта. Входящие данные: путь вида сервер/папка/файл|папка. Определить, что текущий путь относится к сервер/public_папка (корневая) если такой список есть или как-то эвристически определить, что текущий путь корневой, если таких списков нет? Хм, для известных сайтов такой путь можно установить вручную ("xx.xx.xx.xx./public_html") и проверять текущий путь по этому списку или на наличие robots.txt., хеш-файл яндекска, .htaccess., или собственного генерируемого файла, но для этого уже нужен список файлов к каталоге. Но сканировать каждую директорию, как вы подметили - затратно. Если же вы создаете эталонный список файлов - то все равно же нужно указать публичный путь. Допустим, файлов робота и т.п. нет... Можно один раз обратиться к сайту - файлы css, картинки хранятся в публичной папке, а если нет, то каким нибудь ассетором все равно копируются туды. И извлечь часть пути, например, с css или js (вернее, лишь определить наличие в публичной папке некоторых файлов). Извращение, конечно) Допустим, что файлов вообще нет, только внутренние стили, картинки кодированы и т.п. путь хранится, например в $_SERVER php ключ DOCUMENT_ROOT и т.п.Пути к публичной папке есть в конфигах сервера. есть в pear библиотека для чтения конфига, например, апача... хотяяяя.. она туда умеет и писать, что уже опаснее) Сорри, если туплю - утро. UPD: Даже если пойти путем эталонов. Например, авто сделать "эталон" сайта. Через час разработчик перенастраивает сервер и публичная директория становится уже другой, программа же верно сравнит по эталону и выдаст неверный ответ при существующей папке, скопирует туда что-нить или затрет и т.п. Поэтому вариант с эталонами, списком путей и т.п. базирующиеся на истории, наверное, следует считать ненадежным способом.