IIS на самом деле не имеет понятия корня документа так же, как IIS, поскольку каждое приложение более или менее автономно и независимо. Для любого запроса PATH_TRANSLATED
обычно является хорошей базой для построения, для него задается имя физического пути для компонента обработки, установленного в PATH_INFO
, и из этого обычно можно добраться до местоположений файловой системы, используя немного File :: Spec навигация.
Также есть SCRIPT_TRANSLATED
и SCRIPT_NAME
, которые могут быть ближе к тому, что вам нужно. SCRIPT_NAME - это, по сути, абсолютный URL-адрес хоста (за исключением схемы, хоста и порта) для скрипта, а SCRIPT_TRANSLATED
- соответствующий физический файл. Для некоторых из этих задач я использую классы URI
и URI::file
и методы для управления ими.
Они будут полезны, только если ваш запрос обрабатывается тем же приложением, которое обслуживает файлы, но они позволяют вам получать URL-адреса, которые работают. Если вам нужна файловая система для корневого приложения, сопоставленная с "/", и ваш сценарий , а не в том же корневом приложении, вам, скорее всего, придется получить доступ к метабазе IIS (по существу эквивалент httpd.conf
и друзьям, но по запросу), чтобы выяснить это.